7

Androidで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 を使用することは可能ですか? そうでない場合は、他の方法で行う方法を教えてください。

前もって感謝します。

4

6 に答える 6

3

これらの値を直接保存することはできませんが (後で追加されたものは以前に追加されたものを上書きするため)、いつでもParcelableデータを保存してそこに入れることができます

于 2012-11-29T10:12:25.897 に答える
3

JSONObjectキーと値のペアとして保存するフィールドを作成して追加することを検討します。

json.putString(key, value);

次に、json オブジェクトを文字列表現で保存し、json.toString()後で復元できます。

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

JSONObject は、文字列以外にもさまざまなデータ型を提供します。

それは、保存したいデータの量に大きく依存します。それに応じて、SharedPreferences または SQLite 実装を選択します。

于 2013-03-20T01:09:50.443 に答える
2

あなたの場合は、SQLIteデータベースを使用することをお勧めします.しかし、共有設定を使用したい場合は、まだ可能です.追加のインデックスを持つキーを使用して、別のユーザーを覚えておく必要があります.

UserName1:arun

UserName2:ジョン

ユーザーの総数を覚えておく必要があります。その後、それらすべてを維持できます。ハッシュマップなどの他のデータ構造を使用して、共有設定のデータを維持することもできます。

于 2012-11-29T10:03:41.500 に答える
1

ユーザー数がわからないので無理だと思います。ユーザーをコンマで区切ることもできますが、それでは不十分です。

SQLite データベースの使用を検討する必要があります。 http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

于 2012-11-29T09:59:59.710 に答える
0

次に、ユーザー オブジェクトの配列 List を格納する必要があります。最初にクラス userInfo を作成し、配列 List タイプの userInfo を作成してから、このリストにデータを格納し、シリアライズ可能なオブジェクトを SharedPreferences に配置します。

于 2012-11-29T10:01:32.047 に答える
0

それらを「registers」という単一のキーに文字列として保存することもできます。各レジスタをプリファレンスに連結します。置く ";" (または必要な他の文字)を各レジスタ間に挿入します。次に、文字列を解析して値を使用します。

キー: レジスタ

値: "username=john12, first name=john, DOB=06/06/2000;username=mike12, first name=mike, DOB=06/07/2012"

String の split メソッドを使用すると、レジスタのリストが String として表示されます。

registers.split(";");

「,」で再度分割すると、各レジスタのプロパティが得られます。

于 2012-11-29T10:04:40.967 に答える