У меня есть Listpreferences в моем приложении. Похоже, они не устанавливают свои значения по умолчанию сразу после установки - они кажутся нулевыми. Я пытаюсь выяснить, почему мои настройки по умолчанию не устанавливаются сразу после установки. В моем основном коде у меня есть:
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
InUnits = sp.getString("List1", "defValue");
InAngs = sp.getString("List2", "defValue");
OutUnits = sp.getString("List3", "defValue");
OutAngs = sp.getString("List4", "defValue");
Сразу после выполнения приведенного выше кода каждая переменная содержит «defValue» вместо фактических значений, которые я присвоил в моей ListPreference ниже.
Мой предпочтительный xml-файл называется «settings.xml». Вот как выглядит одна из ListPreferences:
<ListPreference
android:key="List1"
android:title="Input: Alph"
android:summary="Choose Alph or Ralph"
android:entries="@array/inputAlph"
android:entryValues="@array/input_Alph_codes"
android:dialogTitle="Input Alph"
android:defaultValue="ININ"/>
Вот как выглядит мой файл strings.xml:
<string-array name="inputUnits">
<item>Alph</item>
<item>Ralph</item>
</string-array>
<string-array name="input_Alph_codes">
<item>ININ</item>
<item>INMM</item>
</string-array>
Когда я захожу в меню, а затем в настройки, я вижу, что мои значения по умолчанию проверены (радио-кнопка). Потом, когда я возвращаюсь из меню настроек на мой главный экран - все хорошо - на всю жизнь! ... тогда каждой переменной выше присваивается правильное значение по умолчанию.
Это происходит только при первой установке приложения на телефон. После того, как я один раз перехожу на экран настроек, а затем сразу же выходит из него, приложение работает нормально и принимает любые изменения настроек.
Кстати, как вы можете видеть, «List1» - это ключ android: в файле settings.xml в папке res / xml.