Значение по умолчанию предпочтения Android - PullRequest
23 голосов
/ 04 мая 2010

Как получить значение по умолчанию для предпочтения Android, определенного в XML? Я не хочу повторять определение значения по умолчанию как в коде, так и в настройках XML.

Ответы [ 3 ]

61 голосов
/ 07 января 2012

Вы можете определить значение по умолчанию в ресурсах (/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);
11 голосов
/ 21 мая 2010

Сначала вам нужно определить значения по умолчанию в вашем XML-файле настроек. Затем вы можете заполнить предпочтения значениями по умолчанию в вашей основной деятельности, вызвав:

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

Когда вам нужно получить какое-то предпочтение, просто позвоните:

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

Поскольку ваши предпочтения заполнены, вы не получите значение null.

1 голос
/ 03 августа 2013

Создать integer.xml в res/values для хранения целочисленных констант.

В prefereces.xml ссылка "@integer/default_brightness"

В коде context.getResources().getInteger(R.integer.default_brightness)

...