Вот проблема, с которой я сталкиваюсь: в моем приложении у меня есть несколько предпочтений, хранящихся в sharedPreferences, которые записывают различные настройки приложения. Это некоторые строки. Поскольку я хочу, чтобы приложение запускалось с некоторыми значениями по умолчанию для этих параметров, в onCreate я создаю объект «Настройка» для каждого параметра, в котором я проверяю, имеет ли значение sharedPreference значение NULL, и если это так, я помещаю значение по умолчанию в sharedPreference.
Setting(int setting, String default)
{
storedPref=sharedPref.getString(getText(setting),null);
if(storedPref==null)
{
SharedPreferences.Editor edit=sharedPred.edit()
edit.putString(getText(setting),default);
edit.comit
}
}
Представления, связанные с этими настройками, являются ListPreferences (). При первом открытии приложения предполагается, что они отображают список параметров, в которых выбранный вариант является значением по умолчанию, но иногда бывает, что не выбран ни один параметр, даже параметр по умолчанию, который не предназначен.
ListPreferences создаются в xml путем установки массива для «тега records» и «тега values». Я не совсем уверен, что я должен передать конструктору объекта Setting по умолчанию, члену массива entry или что-то из значений one !!! Если я передам элемент записей, некоторые из них будут иметь ожидаемое поведение Listpreferences, а некоторые будут иметь описанные выше. Если я сделаю иначе и передам что-то из массива значений, произойдет то же самое! У кого-нибудь есть идеи, почему это странное поведение?