Android-Programmierung GUI: Shared Preferences und Einstellungsdialoge
Willemers Informatik-Ecke

Daten in SharedPreferences speichern

SharedPreferences ähnelt der Java-Map oder noch eher der Java-Properties. Über einen Schlüssel können Daten abgelegt und zurückgeholt werden. Darüber hinaus lassen sich die Daten leicht persistieren.

Aus einem Context (also aus einer Activity oder einem Fragment) können Sie über die Methode getSharedPreferences eine Referenz auf eine SharedPreferences erlangen. Als Parameter geben Sie einen String mit einem eindeutigen Namen an.

Für Änderungen benötigen Sie noch ein Objekt der Klasse Editor, das Sie über die Methode edit() erlangen. Er erlaubt durch put-Methoden den Eintrag von Werten:

SharedPreferences pref = getSharedPreferences("MYAPPKEY", 0);
SharedPreferences.Editor ed = pref.edit();
ed.putInt("PUNKTE", 12);
ed.commit(); // oder ed.apply();
Der erste Parmaeter jeder put-Methode ist der Schlüssel, der zweite der Wert. Für die Standard-Typen gibt es spezialisierte Methoden. Zum Speichern der Daten rufen Sie commit auf, der den Thread bis zum Erfolg blockiert und dann true zurückgibt. Alternativ verwenden Sie apply. So läuft der I/O auf einem separaten Thread und blockiert nicht die Anwendung.

Daten auslesen

Wenn Sie die SharedPreference zurückholen wollen, müssen Sie wiederum erst die Methode getSharedPreferences mit dem Namen aufrufen. Hier verwenden Sie get-Methoden, die den Wert zurückgeben und den Schlüssel als Parameter erwarten.
SharedPreferences pref = getSharedPreferences("MYAPPKEY", 0);
int punkte = pref.getInt("PUNKTE");