2011-06-13 26 views
16

Uygulamamda, bazı Temel ayarları ve Tercih Ekranı'nı kaydetmek için sharedPreferences'ı kullanmaya çalışıyorum. Benim sharedPreferences için adı appPrefs ve böylece benim dosya adı ve .../appPrefs.xml Ancak, benim uygulama ekranı ben istiyorum ne com.COMPANY.PACKAGENAME_preferences.xmlTercihler dosya adını değiştirebilir miyim?

olduğu defaultSharedPreference dosyasındaki tercihleri ​​var kaydeder Benim tercih ekranım, appPrefs dosyasına tercihlerini okuma/yazma seçeneğidir. API'ye baktım ve hiçbir şey bulamadım. İki sharedPreference dosyasını yönetirken sıkışmış mıyım?

cevap

6

denedin: onCreate geçersiz kılmak için

PreferenceManager.setSharedPreferencesName 
+0

Denedim, ancak işlevin mevcut olmadığını belirten bir hata alıyorum. Ayrıca, addPreferencesFromResource, bir PreferenceManager'ı geçirecek bir değişkeni içermez, bu nedenle, düzgün çalışabiliyor olsam bile, ikisini nasıl bağlayacağımı bilmiyorum. – user543010

+0

Hangi hata? Hangi "işlev"? Kod ve yığın izi ekleyin lütfen. – Snicolas

+0

Bazı örnekleri inceledikten sonra, bu işlevin getPreferenceManager() işlevinden çağrılarak çağrılabileceğini buldum, böylece bunu yapabiliyorum. Varsayılan yerine bu tercih adını kullanıp kullanmadığını göreceğim. – user543010

30

Sadece yeni PreferenceFragment API ile farklı paylaşılan ayarlar adını nasıl kullanılacağı ile ilgili soruyu cevaplamak için, aşağıdaki kodu eklemeniz gerekir:

public static class PrefsFragment extends PreferenceFragment { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     PreferenceManager manager = getPreferenceManager(); 
     manager.setSharedPreferencesName("YOUR_SETTINGS_NAME"); 

     // Load the preferences from an XML resource 
     addPreferencesFromResource(R.xml.preferences); 
    } 
} 
+2

'PreferenceFragmentCompat' işlevini kullanarak, çalışabilmesi için ayarlar dosya adını' onCreatePreferences'method (onCreate yerine) olarak tanımladım. – TouchBoarder

İlgili konular