从自定义首选项中保存值

时间:2015-04-08 11:14:39

标签: android android-preferences

我创建了一个新的首选项,直接从CheckboxPreference扩展。在本课程中,我添加了一个简单的新boolean值。我现在的问题是如何存储这个新值。如果用户点击正常CheckboxPreference,则该值会自动存储在首选项中。我希望这也发生在我的新价值上。为此,我想我必须覆盖一个方法,但我不知道它们中的哪一个。此外,我现在有两个boolean值(已检查并且我自己),所以我必须使用整数构建逻辑或类似的东西,因为有两个布尔值有四种不同的可能性。那么如何有效地存储我的两个值以及我必须覆盖哪个方法呢?

1 个答案:

答案 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(),后者在后台异步执行操作。