Android CheckBoxPreference默认值

我的CheckBoxPreference有以下XML代码:

  

但是当我在代码中检索首选项时,值为false

 sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true); 

我的autoStartvariables返回false

这有什么特别的原因吗? 我错过了将默认值设置为true的步骤吗?

Solutions Collecting From Web of "Android CheckBoxPreference默认值"

您必须先设置默认值:

  @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中的一个错误:

http://code.google.com/p/android/issues/detail?id=6641

  // 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();