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.

Übersicht über Android Shared Preferences

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 abzurufen
  • getSharedPreferences(): Wird in Ihrer Aktivität (oder anderen Anwendungs-Kontexten) verwendet, um anwendungsweite Einstellungen abzurufen
  • getDefaultSharedPreferences(): Wird auf dem PreferenceManager 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 ist
  • MODE_WORLD_READABLE: Das Erstellen von weltweit lesbaren Dateien ist sehr gefährlich und kann Sicherheitslücken in Anwendungen verursachen
  • MODE_WORLD_WRITEABLE: Das Erstellen von weltweit schreibbaren Dateien ist sehr gefährlich und kann Sicherheitslücken in Anwendungen verursachen
  • MODE_MULTI_PROCESS: Diese Methode überprüft Änderungen an den Einstellungen, auch wenn die Shared Preference-Instanz bereits geladen wurde
  • MODE_APPEND: Dies fügt neue Einstellungen zu den vorhandenen hinzu
  • MODE_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!

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: