安卓SharedPreferences设置值

37
我有一个偏好设置页面。它有一个名为“显示信息屏幕”的字段(复选框)。
我还有一个信息页面,也应该有一个名为“再次显示”的复选框。
据我理解,我可以通过PreferencesManager.getDefaultPreferences(context)从偏好设置页面获取值...
但是我应该如何为信息页面上的复选框设置偏好设置值?
我尝试使用context.getSharedPreferences(PREF_NAME, 0).edit()设置值,但它与PreferencesManager的对应值不相关。
我应该怎么办???F1
1个回答

119

这要看你是想为你的应用程序设置一组偏好设置,还是每个活动都有一个独立的偏好设置。

我曾使用过类似下面的代码:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
Editor editor = prefs.edit();
editor.putBoolean(PREF_NAME, false);
editor.commit();

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
if (prefs.getBoolean(PREF_NAME, true)) {
    // etc
}

4
非常感谢您提供的优秀答案,我想强调一下,“Editor”不是一个模态的可视化编辑器,需要等待用户交互。它只是一种原子方式来执行与“SharedPreferences.getString()”相反的操作。 - ef2011
1
使用apply()代替commit()将在后台执行。 - Damon Yuan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接