我创建了一个新的首选项,直接从CheckboxPreference
扩展。在本课程中,我添加了一个简单的新boolean
值。我现在的问题是如何存储这个新值。如果用户点击正常CheckboxPreference
,则该值会自动存储在首选项中。我希望这也发生在我的新价值上。为此,我想我必须覆盖一个方法,但我不知道它们中的哪一个。此外,我现在有两个boolean
值(已检查并且我自己),所以我必须使用整数构建逻辑或类似的东西,因为有两个布尔值有四种不同的可能性。那么如何有效地存储我的两个值以及我必须覆盖哪个方法呢?
答案 0 :(得分:1)
您应该使用存储值和密钥对的SharedPreference
。例如,键是" colorPreference"价值是"绿色"。即使您关闭应用程序,它也不会被删除。
//设置共享偏好
public static SharedPreferences sharedPreferencesFDefault;
sharedPreferencesFDefault = PreferenceManager.getDefaultSharedPreferences(this);
//添加你想要的东西
SharedPreferences.Editor editor = sharedPreferencesFDefault.edit();
editor.putInt("studentNameColor", 2); // studentNameColor=2 for example
editor.commit();
//获得存储的价值
int color = sharedPreferencesFDefault.getInt("studentNameColor", -1); // gets 2, if this key is not found, returns -1
//如果不再需要,则删除key-value
对
SharedPreferences.Editor editor = sharedPreferencesFDefault.edit();
editor.remove("studentNameColor");
editor.commit();
//删除defaultSharedPreference
中的每个key-value
对
sharedPreferencesFDefault.edit().clear().commit();
此外,您可以使用apply()
代替commit()
,后者在后台异步执行操作。