Android - Wie stelle ich eine Präferenz in Code
-
23-08-2019 - |
Frage
Ich habe eine Android-Anwendung, in der ich meine Vorlieben in einer XML-Datei haben, die gut funktioniert. Ich möchte jetzt eine der Präferenzen statt Anzeige des gesamten Einstellungsbildschirm unter Verwendung von Code setzen, wie würde ich über das tun dies gehen?
Lösung
Ich gehe davon aus, indem Sie Präferenzen beziehen, werden auf die Präferenzen Ihrer Anwendung und nicht Android-Handy-Einstellungen.
Zum Speichern von Präferenzen zwischen den Läufen von Ihnen Anwendung benötigen Sie die folgenden
zu tun-
Erstellen Sie ein SharedPreferences Objekt
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
String n identifiziert Ihre Vorlieben und das zweite Argument ist der Modus auf sie zugegriffen wird, werden
-
ein Editor-Objekt instanziiert
SharedPreferences.Editor editor = settings.edit();
Hinweis: versuchen Sie nicht settings.editor.edit (), wird dies nicht ein persistentes Objekt und den Code macht unten wird nicht funktionieren
-
Schreiben Sie Ihre Einstellungen an den Puffer
editor.put...(String, value)
Es gibt zahlreiche Put-Funktion, putString, putBoolean usw. Der String ist der Schlüssel ( "Version", "guter Lauf") und der Wert ist der Wert ( "1.5.2", true)
-
Spülen Sie den Puffer
editor.commit();
Diese eigentlich schreibt man die Präferenzen setzen. Wenn Ihre App vor dieser Zeile stürzt, dann werden nicht die Präferenzen geschrieben werden. Es gibt auch eine dokumentierte Fehler: commit () soll eine Bedingung, die anzeigt Erfolg oder Misserfolg zurückzukehren. Zuletzt überprüfte ich es immer falsch zurückgegeben.
werden Diese Einstellungen am Telefon gespeicherten und werden nur zu Ihrer Anwendung zugänglich sein.
Weitere Dokumentation ist hier
Andere Tipps
habe ich versucht, dies aber nicht funktioniert hat:
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
Versuchen Sie stattdessen:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Sie können etwas in der sharedpreferences sparen, indem Sie unter Code mit
public static void save(String valueKey, String value) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
SharedPreferences.Editor edit = prefs.edit();
edit.putString(valueKey, value);
edit.commit();
}
Einstellungen zu lesen:
public static String read(String valueKey, String valueDefault) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
return prefs.getString(valueKey, valueDefault);
}