I have the following XML code for my CheckBoxPreference:
<CheckBoxPreference
    android:key="pref_boot_startup"
    android:title="Auto start"
    android:defaultValue="true" />
But when I retrieve the preference in code the value is false.
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);
My autoStart variable returns false.
Is there a specific reason for this? Am I missing a step to set the default value to true?
You have to set the defaults first:
    @Override
    protected void onCreate()
    {
        PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);
     {...}
    }
                        Use junkdog's method, but for what it's worth, this is a bug in 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();
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With