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
に設定する手順がありませんか?
最初にデフォルトを設定する必要があります。
@Override
protected void onCreate()
{
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);
{...}
}
ジャンクドッグの方法を使用しますが、それだけの価値があるので、これはAndroidのバグです。
// 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();