Android CheckBoxPreference默认值

Don*_*rty 18 android default-value checkboxpreference

我有以下XML代码CheckBoxPreference:

<CheckBoxPreference
    android:key="pref_boot_startup"
    android:title="Auto start"
    android:defaultValue="true" />
Run Code Online (Sandbox Code Playgroud)

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

sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);
Run Code Online (Sandbox Code Playgroud)

我的autoStart变量返回false.

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

小智 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);

     {...}
    }
Run Code Online (Sandbox Code Playgroud)

  • 如果我必须以编程方式对xml进行编码,那么xml中的默认值的用途是什么? (3认同)

小智 13

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

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