我的CheckBoxPreference
有以下XML代码
<CheckBoxPreference
android:key="pref_boot_startup"
android:title="Auto start"
android:defaultValue="true" />
但是,当我在代码中检索首选项时,值是false
。
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);
我的autoStart
变量返回false
。
有什么特别的原因吗?我是否错过了将默认值设置为true
的步骤
发布于 2010-10-12 09:22:22
您必须先设置默认值:
@Override
protected void onCreate()
{
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);
{...}
}
发布于 2010-12-06 20:18:36
使用垃圾狗的方法,但值得注意的是,这是Android的一个bug:
发布于 2012-01-13 20:15:32
// These two lines are working around an android bug:
// http://code.google.com/p/android/issues/detail?id=6641
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().putBoolean(REFRESH_COUNTER_PREF, prefs.getBoolean(REFRESH_COUNTER_PREF, true)).commit();
https://stackoverflow.com/questions/3907830
复制相似问题