Android CheckBoxPreference默认值

时间:2010-10-11 15:55:02

标签: android default-value checkboxpreference

我有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的步骤吗?

3 个答案:

答案 0 :(得分:35)

您必须先设置默认值:

    @Override
    protected void onCreate()
    {
        PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);

     {...}
    }

答案 1 :(得分:13)

使用junkdog的方法,但是对于它的价值,这是Android中的一个错误:

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

答案 2 :(得分:3)

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