getDefaultSharedPreferencesの代わりにcontext.getSharedPreferenceを使用しています。意味 :
SharedPreferences checkboxSetting = context.getSharedPreferences(
"myPreferenceDB", Context.MODE_PRIVATE);
boolean flag = checkboxSetting.getBoolean("checkboxKey",true);
そしてpreference.xml:
<CheckBoxPreference
android:key="checkBoxPrefff"
android:title="@string/title"
android:defaultValue="true"/>
アプリケーション設定には、チェックされているかどうかにかかわらず、値を取得したいチェックボックス設定があります。
これは機能しますか?
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
if (key.equalsIgnoreCase("checkBoxPrefff")) {
sharedPreferences.getBoolean(key,true);
}
}
sharedPreferencesはデフォルトデータベース(..._ preference.xml)または定義済みデータベース( "myPreferenceDB")を使用しますか?キーは「checkboxKey」ですか、それともnullですか?
のような価値を得たいとき
SharedPreferences temp = context.getSharedPreferences(
"myPreferenceDB", Context.MODE_PRIVATE);
boolean flag = temp.getBoolean("checkboxKey",true);
それは間違っていて、defValue(true)を取り戻します。しかし、次のように使用する場合
SharedPreferences temp = PreferenceManager.getDefaultSharedPreferences(context);
boolean flag = temp.getBoolean("checkboxKey",true);
できます。