2013-07-26 15 views
11

Ayarları okumak ve yazmak için hangi dosyanın PreferencesFragment tarafından kullanılması gerektiğini nasıl kontrol edebilirim? Dokümanlardaki hiçbir şeyi bulamıyorum. Bu kod veya XML kaynakları aracılığıyla kontrol edilemez, dosya adlandırılan herhangi bir teminat vardır, bu yüzden açıkçaPreferenceFragment hangi ayarlar dosyasını okuyor/yazıyor?

Activity.getSharedPreferences(String name, int mode) 

Teşekkür kullanılarak açılabilir.

+0

Bu http yazdıktan sonra tercih dosyası kopyalamak için yararlı olabilir: Bu Sonra bu ayarlar böyle parçanın dışında dosyasını erişebilir

// Constants //-------------------------------------------------------------------------- private final static String TAG = SettingsFragment.class.getName(); public final static String SETTINGS_SHARED_PREFERENCES_FILE_NAME = TAG + ".SETTINGS_SHARED_PREFERENCES_FILE_NAME"; // Life-cycle //-------------------------------------------------------------------------- @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "onCreate()"); // Define the settings file to use by this settings fragment getPreferenceManager().setSharedPreferencesName(SETTINGS_SHARED_PREFERENCES_FILE_NAME); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); } 

neye benzediği stackoverflow.com/a/25585711/1815624 – CrandellWS

cevap

36

SettingsFragment'un PreferenceManager'unu değiştirmek zorundasınız. //:

SharedPreferences preferences = getActivity().getSharedPreferences(
     SettingsFragment.SETTINGS_SHARED_PREFERENCES_FILE_NAME, 
     Context.MODE_PRIVATE); 
+1

'PreferenceFragmentCompat 'işlevinin kullanılması için, çalışmanın çalışması için' onCreatePreferences'method (onCreate yerine) ayar dosyasını tanımlamak zorundaydım. – TouchBoarder