Speichern von Benutzereinstellungen in Android: Einblicke in Shared Preferences
Erfahren Sie in unserem neuesten Blogbeitrag, wie Sie Benutzereinstellungen in Android-Anwendungen effizient speichern und wiederherstellen können, indem Sie Shared Preferences verwenden. Von der Initialisierung bis zur Abrufung gespeicherter Daten – wir führen Sie durch den Prozess und zeigen Ihnen, wie einfach es ist, Daten in Form von Schlüssel-Wert-Paaren zu verwalten.
Shared Preferences ermöglichen es Aktivitäten und Anwendungen, Einstellungen in Form von Schlüssel-Wert-Paaren zu speichern, ähnlich wie bei einer Map, die auch nach dem Schließen der Anwendung bestehen bleiben. Android speichert die Shared Preferences als XML-Datei im Verzeichnis shared_prefs unter DATA/data/{application package}. Der DATA-Ordner kann durch Aufruf von Environment.getDataDirectory() ermittelt werden. Shared Preferences sind anwendungspezifisch, das heißt, die Daten gehen bei folgenden Aktionen verloren:
- Beim Deinstallieren der Anwendung
- Beim Löschen von Anwendungsdaten (über die Einstellungen)
Wie der Name schon sagt, besteht der Hauptzweck darin, benutzerspezifische Konfigurationsdetails zu speichern, wie z.B. Benutzereinstellungen, um den Benutzer in der Anwendung angemeldet zu halten. Um auf die Einstellungen zuzugreifen, stehen uns drei APIs zur Auswahl:
getPreferences()
: Wird in Ihrer Aktivität verwendet, um aktivitätsspezifische Einstellungen abzurufengetSharedPreferences()
: Wird in Ihrer Aktivität (oder anderen Anwendungs-Kontexten) verwendet, um anwendungsweite Einstellungen abzurufengetDefaultSharedPreferences()
: Wird auf demPreferenceManager
verwendet, um die Shared Preferences abzurufen, die mit dem gesamten Android-Einstellungs-Framework zusammenarbeiten
In diesem Tutorial werden wir getSharedPreferences()
verwenden. Die Methode ist wie folgt definiert: getSharedPreferences(String PREFS_NAME, int mode)
. PREFS_NAME ist der Name der Datei. Der Modus ist der Betriebsmodus. Die folgenden Betriebsmodi sind anwendbar:
MODE_PRIVATE
: Der Standardmodus, in dem die erstellte Datei nur von der aufrufenden Anwendung zugänglich istMODE_WORLD_READABLE
: Das Erstellen von weltweit lesbaren Dateien ist sehr gefährlich und kann Sicherheitslücken in Anwendungen verursachenMODE_WORLD_WRITEABLE
: Das Erstellen von weltweit schreibbaren Dateien ist sehr gefährlich und kann Sicherheitslücken in Anwendungen verursachenMODE_MULTI_PROCESS
: Diese Methode überprüft Änderungen an den Einstellungen, auch wenn die Shared Preference-Instanz bereits geladen wurdeMODE_APPEND
: Dies fügt neue Einstellungen zu den vorhandenen hinzuMODE_ENABLE_WRITE_AHEAD_LOGGING
: Datenbank-Öffnungsflag. Wenn gesetzt, wird das vorausschauende Logging standardmäßig aktiviert
Initialisierung
Wir benötigen einen Editor, um Änderungen in den Shared Preferences zu bearbeiten und zu speichern. Der folgende Code kann verwendet werden, um die Shared Preferences zu erhalten:
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - für den privaten Modus
SharedPreferences.Editor editor = pref.edit();
Speichern von Daten
editor.commit()
wird verwendet, um Änderungen in den Shared Preferences zu speichern. Ein Beispiel für das Speichern von Daten:
editor.putBoolean("key_name", true); // Speichern von Boolean - true/false
editor.putString("key_name", "String-Wert"); // Speichern von String
editor.putInt("key_name", 123); // Speichern von Integer
editor.putFloat("key_name", 3.14f); // Speichern von Float
editor.putLong("key_name", 123456789L); // Speichern von Long
editor.commit(); // Änderungen bestätigen
Abrufen von Daten
Daten können aus den gespeicherten Einstellungen mit getString()
wie folgt abgerufen werden:
pref.getString("key_name", null); // String abrufen
pref.getInt("key_name", -1); // Integer abrufen
pref.getFloat("key_name", -1.0f); // Float abrufen
pref.getLong("key_name", -1L); // Long abrufen
pref.getBoolean("key_name", false); // Boolean abrufen
Löschen von Daten
remove("key_name")
wird verwendet, um einen bestimmten Wert zu löschen. clear()
wird verwendet, um alle Daten zu entfernen.
editor.remove("name"); // wird den Schlüssel "name" löschen
editor.remove("email"); // wird den Schlüssel "email" löschen
editor.commit(); // Änderungen bestätigen
editor.clear();
editor.commit(); // Änderungen bestätigen
Projektstruktur
Die Projektstruktur umfasst die Aktivität (MainActivity.java
) und das Layout (activity_main.xml
). Die Datei MainActivity.java
wird zum Speichern und Abrufen von Daten verwendet, während das Layout activity_main.xml
zwei EditText
-Ansichten enthält, um Namen und E-Mails zu speichern und anzuzeigen. Mit diesem Wissen können Sie Benutzereinstellungen und andere Daten in Ihrer Android-Anwendung speichern und wiederherstellen. Viel Erfolg beim Programmieren!
Das war’s für dieses Tutorial. Danke fürs Lesen!