2016-04-21 15 views
1

Android Tutorials und Beispiele zeigen, wie Präferenz Fragment und Präferenz AktivitätEinstellungen Bildschirm in einer App zu verwenden.Kann der Android-Einstellungen/Einstellungen-Bildschirm so konfiguriert werden, dass andere Voreinstellungen als "DEFAULT" verwendet werden?

Alle auf diese Weise angezeigten Einstellungen erhalten jedoch ihre Werte 'DefaultSharedPreferences'.

Was ist, wenn wir Präferenzwerte in anderen (nicht standardmäßigen/benutzerdefinierten) SharedPreferences speichern möchten. Der Anwendungsfall, den ich mir vorstelle, ist ähnlich wie E-Mail-Apps, bei denen eine App es dem Benutzer ermöglichen kann, mehrere Konten zu erstellen, und dem Benutzer auch die Möglichkeit gibt, die Einstellungen für verschiedene Konten unterschiedlich zu speichern. Eine Methode, die ich als Option sehe, wäre gewesen, die Präferenz in den Voreinstellungsbildschirmen "programmatisch" hinzuzufügen und für jedes einzelne Ziel ein anderes Präferenz-Präferenz-Ziel anzugeben (je nach Konto).

Es scheint jedoch so zu sein, dass derzeit alle Einstellungen, die PreferenceFragment/Activity hinzugefügt wurden, ihre Werte in DefaultSharedPreferences gespeichert bekommen.

Alle Hinweise dazu werden geschätzt.

One

+0

Mögliche Duplikat [Wie kann ein PreferenceActivity eine benutzerdefinierte Einstellungsdatei verwenden] (http://stackoverflow.com/questions/5169532/how-can-a-preferenceactivity-use-a-custom-preference-file) –

Antwort

0

Technisch werden diese drei Zeilen den Job von einer Seite erledigen. Und jetzt, da es die Voreinstellung für alle Aktivitäten festlegt, ist der einfache Weg, dies zu überwinden, die Initialisierung von SharedPreferences, wo sie benötigt werden, und von benutzerdefinierten SharedPreferences, wo sie erwünscht sind.

getPreferenceManager().setSharedPreferencesName("custom_prefs"); 
getPreferenceManager().setSharedPreferencesMode(MODE_PRIVATE); 
addPreferencesFromResource(R.xml.prefs); 
+0

Vielen Dank - das hilft wirklich - eine Folgefrage - Ihr Beispiel gibt uns eine Möglichkeit, den Präferenzdateinamen für die gesamte Einstellungsaktivität zu konfigurieren. Ist es möglich, eine Präferenzkategorie oder individuelle Präferenzen festzulegen? –

+0

Ich habe die Antwort bearbeitet. Dieser wird dir helfen. – SanVed