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?

War es hilfreich?

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
  1. 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

  2. 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

  3. 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)

  4. 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);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top