Android CheckBoxPreference默认值
我的Android CheckBoxPreference默认值,android,default-value,checkboxpreference,Android,Default Value,Checkboxpreference,我的CheckBoxPreference有以下XML代码: <CheckBoxPreference android:key="pref_boot_startup" android:title="Auto start" android:defaultValue="true" /> MyautoStart变量返回false sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this
CheckBoxPreference
有以下XML代码:
<CheckBoxPreference
android:key="pref_boot_startup"
android:title="Auto start"
android:defaultValue="true" />
MyautoStart
变量返回false
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);
有没有具体的原因?是否缺少将默认值设置为
true
的步骤?您必须先设置默认值:
@Override
protected void onCreate()
{
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);
{...}
}
使用junkdog的方法,但值得一提的是,这是Android中的一个bug:
注意:我把它放在一个扩展应用程序的类中,而不是一个activity@MobileMon喊得好!我正要把它放进一个片段里。为什么呢?:)如果必须以编程方式对xml中的默认值进行编码,那么它有什么用途?
// 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();