web-dev-qa-db-ja.com

デフォルト値Android設定

XMLで定義されたAndroidプリファレンスのデフォルト値を取得するにはどうすればよいですか?コードとプリファレンスXMLの両方でデフォルト値の定義を繰り返したくありません。

24
hpique

リソースにデフォルト値を定義できます(/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);
61
Paweł Nadolski

まず、設定XMLファイルでデフォルト値を定義する必要があります。次に、次のコマンドを呼び出して、メインアクティビティのデフォルト値を設定に入力できます。

PreferenceManager.setDefaultValues(this, R.xml.preference, false);

いくつかの設定を取得する必要がある場合は、次のように呼び出します。

int value = prefs.getInt("key", null);

設定が入力されているため、null値は取得されません。

12
pixel

整数定数を格納するには、_integer.xml_の下に_res/values_を作成します。

_prefereces.xml_リファレンス_"@integer/default_brightness"_

コード内context.getResources().getInteger(R.integer.default_brightness)

1
eugene