2016-07-25 3 views
-3

Ich habe versucht, die Daten in gemeinsam genutzten Voreinstellungsdatei, wie die Daten in Gemeinschafts-Preference in Android anhängen

unter Verwendung
SharedPreferences sharedPreferences = getSharedPreferences("myData", MODE_APPEND); 
SharedPreferences.Editor editor = sharedPreferences.edit(); 
editor.putString("name", userName.getText().toString()); 
editor.putString("password", password.getText().toString()); 
editor.commit(); 

Aber ich fand anfügen, dass neuer Wert den alten Wert überschreibt. Wirst du mir helfen, dieses Problem zu beheben?

+0

Was meinen Sie die alten Werte überschreibt? Du meinst andere Werte als 'name' und' passwort' als weg? – user3185569

+0

Daten in 'SharedPreferences' werden gespeichert und in Form eines Schlüssel/Wert-Paares zurückerhalten. Und wenn Sie "putString" auf den Schlüssel "name" oder "password" setzen, überschreiben Sie den zuvor gespeicherten Wert. Sie können darüber lesen https://developer.android.com/training/basics/data-storage/shared-preferences.html – jayeshsolanki93

+0

Die Werte Name und Passwort werden durch neue Werte überschrieben, wenn ich versuchte, in die vorhandene gemeinsame Präferenz anhängen XML-Datei. –

Antwort

1

MODE_APPEND bedeutet nicht, dass Sie mehrere Werte für jeden Schlüssel hinzufügen. Wenn die Datei bereits existiert, wird sie angehängt und nicht gelöscht. Wir verwendeten normalerweise MODE_PRIVATE.

Zum Speichern mehrerer Namen und Passwörter können Sie sich die Methode putStringSet(string key Set<String> values ansehen.

Sie können für jede Taste eine Reihe von Zeichenfolgenwerten speichern. Sie können den Benutzernamen und das Passwort durch ein Sonderzeichen oder eine Zeichenfolge trennen. Sie können sogar ein Objekt nach json serialisieren.

Also im Grunde, was Sie tun müssen, ist:

  1. die Liste der Werte von Gemeinschafts-Einstellungen Get
  2. den aktuellen Wert in die Liste anhängen.
  3. Speichern Sie die Liste wieder in den gemeinsamen Einstellungen.
+0

Bei MODE_PRIVATE werden die alten Daten gelöscht, die zu allen Schlüsseln in der Einstellungsdatei gehören. –

+0

@BrightVarghese Nein. Es sei denn, Sie überschreiben den gleichen Schlüssel. Sie müssen die Liste von den sharedPreferences abrufen und Werte hinzufügen. Und dann speichern Sie es zurück. – user3185569

+0

k, vielen Dank. –