1

共有設定を使用して 3 つの文字列フィールドを保存しています。別のクラスで次のコードを使用して、共有設定を毎回開いています。保存する関数を介してこのクラスを呼び出しています。

mPrefs=context.getSharedPreferences(id, Context.MODE_PRIVATE);

これを行った後、人のID、名前、姓の3つのフィールドを保存しています。保存プロセスが成功しました。これらの 3 つの変数すべてを person というオブジェクトに保持しています。共有メモリから情報を取得できます。彼のIDを持つ最初の人の情報を取得したら、それを行うことができます. Logに書き出しています。それは成功しています。しかし、2 人称の ID で 2 人称情報を取得すると、1 人称オブジェクトも 2 人称オブジェクトになります。共有プリファレンスは、すべての変数を同じ値に割り当てます。

どんな助けでも大歓迎です。ありがとう

編集

personGet.setId(mPrefs.getString("id", null)); 
personGet.setName(mPrefs.getString("name", null)); 
personGet.setSurname(mPrefs.getString("surname", null)); 
// This is for saving to shared preferences. 

mPrefs = context.getSharedPreferences(person.getId(), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = mPrefs.edit(); 
editor.putString("name", person.getName()); 
editor.putString("surname", person.getSurname()); 
editor.putString("id", person.getId()); 
// This is for saving. the "id" is unique for all users –
4

3 に答える 3

1

SharedPreferences は、キーと値のペアの単なるマップです

はい、これはあなたのIDをキー「id」の下に保存します:

 editor.putString("id", "abc");

ただし、キー「id」が同じであるため、これを行うとオーバーライドされます。

 editor.putString("id", "zxy");

したがって、sharedPreferenceの「id」を要求すると、取得されます

 zxy

編集

commit(); を呼び出すことを忘れないでください。あなたの共有設定で

于 2012-06-15T08:51:20.173 に答える
0

設定からデータを取得すると、次のように記述します

    personGet.setId(mPrefs.getString("id", "")); 
于 2012-06-15T08:49:39.877 に答える