2012-11-29 8 views
7

アンドロイドのSharedPreferencesを使用して、同じキーで2つ以上の値を格納できますか?いいえ、多くのユーザーが登録アプリに登録すると、ユーザー名、名、パスワードなどの値を保存する方法を教えてください。私はアンドロイドのSharedPreferencesを使用して同じキーで2つ以上の値を格納できますか?

例:今すぐ

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". 

、私はSharedPreferencesでこれらの値を保存し、後でそれを取得したいです。 SharedPreferencesを使用することは可能ですか?そうでない場合は、他の方法でやり方を教えてください。

ありがとうございます。

+0

共有設定にハッシュマップを保存するhttp://stackoverflow.com/a/7944653/1012284 –

答えて

0

次に、あなたが最初のUserInfoは、このリストにデータを格納し、SharedPreferencesに直列化可能なオブジェクトを配置し、その後のUserInfoの配列リストの種類を作成したクラスを作成したユーザオブジェクトの配列リストを保存する必要があります。

2

あなたのケースのために、それはあなたが共有プリファレンスを使用する場合、それはpossible.Youが

USERNAME1のような別のユーザーを覚えておくことが、追加のインデックスとキーを使用する必要がまだある優れた使用SQLiteのdatabase.Butです:アルン

UserName2:john

あなたはそれらのすべてを維持することができます。あなたはまた、共有環境設定のデータを維持するためにhashmapのような他のデータ構造を使用することができます。

0

「レジスタ」と呼ばれる単一のキーに文字列として格納することもできます。優先度に各レジスタを連結します。 ";" (またはあなたが望むその他の文字)を各レジスタ間に挿入します。次に、文字列を解析して値を使用します。

キー:

価値登録: "ユーザ名= john12、最初の名前=ジョン、DOBは=/06/2000 06;ユーザ名= mike12、最初の名前を=マイク、DOB = 06/07/2012"

Stringのsplitメソッドを使用すると、Stringのようなレジスタのリストが得られます。

registers.split(";"); 

"、"でもう一度分割すると、各レジスタのプロパティが表示されます。

1

あなたが直接これらの値を保存することはできません(後者として以前に追加したが上書きされます)が、あなたはいつも私がJSONObjectを作成することを検討して、として保存したいフィールドを追加woud Parcelableを保存し、それに

2

をあなたのデータを置くことができますキー:値のペア。

json.putString(key, value); 

その後、json.toString()でそれの文字列表現でJSONオブジェクトを格納し、

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

JSONObjectは、文字列の横に異なるデータ型をofferesと、後でそれを復元することができます。

本当にどれくらいのデータを保存するかによって異なります。それに応じて、SharedPreferencesまたはSQLiteの実装を選択します。

関連する問題