我正在使用共享首选项来保存 3 个字符串字段。我每次都在另一个类中使用以下代码打开共享首选项。我通过一个函数调用这个类来保存它。
mPrefs=context.getSharedPreferences(id, Context.MODE_PRIVATE);
完成此操作后,我将保存 3 个字段,即一个人的 ID、姓名和姓氏。保存过程成功。我将所有这 3 个变量保存在一个名为 person 的对象中。我可以从共享内存中获取信息。当我得到第一个有他的 Id 的人的信息时,我就可以做到。我正在把它写到日志中。它是成功的。但是在用第二人称id获取第二人称信息后,第一人称对象也是第二人称。共享首选项将所有变量分配给相同的值。
任何帮助将不胜感激。谢谢
编辑
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 –
最佳答案
SharedPreferences 只是一个 Map of Key Value pairs
是的,这会将您的 ID 保存在键“id”下:
editor.putString("id", "abc");
但是这样做会覆盖它,因为键“id”是相同的:
editor.putString("id", "zxy");
因此,当您请求 sharedPreference“id”时,您将得到
zxy
编辑
不要忘记调用 commit();在您的共享偏好上
关于android - sharedpreferences 使所有变量相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11047084/