Я пытаюсь использовать API-интерфейс Android для сохранения некоторых конфигураций моего приложения. Есть ли способ использовать значение из string.xml
в качестве ключа к настройкам? бывший:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/pref_sms_storage_title"
android:key="@string/pref1">
<CheckBoxPreference
android:key="@string/pref2"
android:summary="@string/pref_summary_auto_delete"
android:title="@string/pref_title_auto_delete"
android:defaultValue="false" />
</PreferenceCategory>
</PreferenceScreen>
Когда я делаю это, если я пытаюсь прочитать такие значения, как:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
Boolean b = preferences.getBoolean(getString(R.string.pref2),false);
он всегда возвращает false
, даже если он установлен на true
Я заметил, что если я помещаю буквальное значение в поле key
, оно работает так:
<CheckBoxPreference
android:key="something"
android:summary="@string/pref_summary_auto_delete"
android:title="@string/pref_title_auto_delete"
android:defaultValue="false" />
Boolean b = preferences.getBoolean("something",false);
в этом случае b
возвращает true, как и ожидалось...
Является ли официальным подходом к использованию API настроек для копирования вставки строковых литералов в файл preferences.xml?
Нет ли другого пути, менее подверженного ошибкам?