2013-07-26 10 views
11

Wie kann ich steuern, welche Datei von einem PreferencesFragment zum Lesen und Schreiben von Einstellungen verwendet werden soll? Ich kann nichts darüber in den Dokumenten finden. Wenn das nicht über Code oder XML-Ressourcen kontrolliert werden, gibt es irgendwelche Garantien, was die Datei aufgerufen wird, also kann ich es öffnen explizit mitWelche Einstellungsdatei liest/schreibt PreferenceFragment?

Activity.getSharedPreferences(String name, int mode) 

Dank.

+0

Diese zum Kopieren der Voreinstellungsdatei nützlich sein können, nachdem es zu schreiben http: // stackoverflow.com/a/25585711/1815624 – CrandellWS

Antwort

36

Sie müssen die PreferenceManager der SettingsFragment manipulieren. Dies ist, was es sieht aus wie

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

Dann können Sie diese Einstellungen außerhalb des Fragments wie diese Datei zugreifen:

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

Mit 'PreferenceFragmentCompat' musste ich die Einstellungsdatei in der 'onCreatePreferences'-Methode definieren (anstatt in onCreate), damit sie funktioniert. – TouchBoarder

Verwandte Themen