XMLで定義されたAndroidプリファレンスのデフォルト値を取得するにはどうすればよいですか?コードとプリファレンスXMLの両方でデフォルト値の定義を繰り返したくありません。
リソースにデフォルト値を定義できます(/values/bool.xml
):
<resources>
<bool name="mypreference_default">true</bool>
</resources>
preferences.xml
の値を使用します。
<CheckBoxPreference
Android:defaultValue="@bool/mypreference_default"
Android:key="mypreference"
Android:title="@string/mypreference_title" />
次に、コードで使用します。
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
Boolean value = context.getResources().getBoolean(R.bool.mypreference_default);
Boolean b = p.getBoolean("mypreference", value);
まず、設定XMLファイルでデフォルト値を定義する必要があります。次に、次のコマンドを呼び出して、メインアクティビティのデフォルト値を設定に入力できます。
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
いくつかの設定を取得する必要がある場合は、次のように呼び出します。
int value = prefs.getInt("key", null);
設定が入力されているため、null
値は取得されません。
整数定数を格納するには、_integer.xml
_の下に_res/values
_を作成します。
_prefereces.xml
_リファレンス_"@integer/default_brightness"
_
コード内context.getResources().getInteger(R.integer.default_brightness)