2012-11-29 4 views
7

Kann ich zwei oder mehr Werte mit demselben Schlüssel mit SharedPreferences in Android speichern? Wenn nein, bitte sagen Sie mir, wie Sie den Benutzernamen, den Vornamen, das Passwort usw. speichern können, wenn sich viele Benutzer in der Registrierungs-App registrieren?Kann ich zwei oder mehr Werte mit demselben Schlüssel mit SharedPreferences in Android speichern?

Ex:

person A registered with username="john12", first name="john" and DOB="06/06/2000". 
person B registered with username="arun89", first name="arun" and DOB="08/11/1989". 

Jetzt will ich diese Werte in SharedPreferences speichern und später wieder abrufen. Ist es möglich SharedPreferences zu verwenden? Wenn nicht, bitte sag mir, wie ich es anders machen soll.

Vielen Dank im Voraus.

+0

Speichern einer Hash-Map in gemeinsamen Einstellungen http://stackoverflow.com/a/7944653/1012284 –

Antwort

0

Dann müssen Sie Liste der Benutzerobjekte ein Array speichern zuerst eine Klasse erstellen userinfo dann eine Array-Liste Art von userinfo erstellen dann die Daten in dieser Liste und legte ein serialize-able Objekt in SharedPreferences.

2

Für Ihren Fall ist es besser zu nutzen SQLite database.But ist, wenn Sie geteilt Präferenz verwenden möchten ist es immer noch possible.You haben einen Schlüssel mit zusätzlichen Index verwenden, um verschiedene Benutzer wie

UserName1 zu erinnern: arun

UserName2: john

Sie haben die Gesamtzahl der user.Then erinnern können alle them.you halten auch andere Datenstruktur wie hashmap können Daten für die gemeinsame Vorliebe zu halten.

0

Sie können sie auch auf einem einzelnen Schlüssel namens "registers" als String speichern. Verketten Sie jedes Register nach Präferenz. Stellen ";" (oder jeden anderen Charakter, den Sie wollen) zwischen jedem Register. Parsen Sie dann die Zeichenfolge und verwenden Sie die Werte.

Schlüssel: Register

Wert: "username = john12, Vorname = john, DOB = 06/06/2000; username = mike12, Vorname = mike, DOB = 06/07/2012"

Mit der Split-Methode von String erhalten Sie eine Liste von Registern als String.

Durch nochmaliges Aufteilen mit "," erhalten Sie die Eigenschaften jedes Registers.

1

Sie können diese Werte nicht gespeichert werden direkt (als letztere zuvor hinzugefügt überschreiben), aber man kann immer Parcel speichern und Ihre Daten in legte es

2

ich woud betrachten eine JSONObject Erstellen und fügen Sie die Felder, die Sie als speichern möchten Schlüssel: Wertpaar.

json.putString(key, value); 

Sie können dann speichern Sie die JSON-Objekt in seiner String-Darstellung mit json.toString() und es wieder später mit

JSONObject jo = new JSONObject(jsonString); 
String value = jo.getString(key); 

JSONObject auch verschiedene Datentypen neben Strings offeres.

Es hängt wirklich davon ab, wie viele Daten Sie speichern möchten. Abhängig davon würde ich SharedPreferences oder eine SQLite-Implementierung wählen.