我使用共享首选项来保存3个字符串字段。我每次都使用另一个类中的以下代码打开共享首选项。我通过一个函数调用这个类来保存它。
mPrefs=context.getSharedPreferences(id, Context.MODE_PRIVATE);
执行此操作后,我将保存3个字段,这些字段是个人的ID,姓名和姓氏。保存过程成功。我将所有这3个变量保存在一个名为person的对象中。我可以从共享内存中获取信息。当我得到他的Id的第一个人的信息时,我可以做到。我正在把它写到Log。它很成功。但在获得第二人称身份的第二人称信息后,第一人称对象也是第二人称。共享首选项将所有变量分配给相同的值。
任何帮助将不胜感激。感谢
修改
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 –
答案 0 :(得分:1)
SharedPreferences只是Map of Key Value pairs
是的,这会将您的ID保存在“id”键下:
editor.putString("id", "abc");
但这样做会覆盖它,因为键“id”是相同的:
editor.putString("id", "zxy");
因此,当您要求sharedPreference“id”时,您将获得
zxy
修改的
不要忘记调用commit();在你的共享偏好
答案 1 :(得分:0)
当我们从偏好中获取数据时,我们就像这样写
personGet.setId(mPrefs.getString("id", ""));
答案 2 :(得分:0)
在共享首选项中编辑或保存某些内容时,需要调用“commit()”。 就像那样,
mPrefs = context.getSharedPreferences(person.getId(), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString(“name”,person.getName())。commit();