2013-07-26 16 views
11

Jak mogę kontrolować, który plik powinien być używany przez PreferencesFragment do odczytu i zapisu ustawień? Nie mogę znaleźć niczego na ten temat w dokumentach. Jeśli to nie może być kontrolowana za pomocą kodu XML lub zasobów, czy są jakieś gwarancje, co plik nazywa, więc mogę otworzyć go jawnie przy użyciuJaki plik ustawień wykonuje PreferenceFragment do odczytu/zapisu?

Activity.getSharedPreferences(String name, int mode) 

Dzięki.

+0

ten może być przydatny do kopiowania pliku preferencji po napisaniu do niego http: // stackoverflow.com/a/25585711/1815624 – CrandellWS

Odpowiedz

36

Musisz manipulować PreferenceManager z SettingsFragment. To, co wygląda

// 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); 
} 

Następnie można uzyskać dostęp do pliku Ta ustawienia poza fragmentem tak:

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

Używając 'PreferenceFragmentCompat', musiałem zdefiniować plik ustawień w' onCreatePreferences'method (zamiast w onCreate), aby działał. – TouchBoarder

Powiązane problemy