Подтвердить что ты не робот

Значение по умолчанию для Android CheckBoxPreference

У меня есть следующий код XML для моего CheckBoxPreference:

<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?

4b9b3361

Ответ 1

Сначала вы должны установить значения по умолчанию:

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

     {...}
    }

Ответ 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();