Значение по умолчанию для 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
?
Ответы
Ответ 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);
{...}
}
Ответ 2
Использовать метод junkdog, но для чего это стоит, это ошибка в Android:
http://code.google.com/p/android/issues/detail?id=6641
Ответ 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();