Android: значение предпочтения по умолчанию не устанавливается из XML

У меня есть простое действие Preferences, которое я заполняю через XML, определяя значения как ресурсы массива.

В MAIN Activity приложения я получаю доступ к этому через:

mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);

В XML для единственного предпочтения, которое у меня есть, которое является параметром отображения, у меня есть следующий XML, который определяет ListPreference:

<ListPreference
        android:title="@string/pref_title_sort"
        android:summary="@string/pref_summary_sort"
        android:key="@string/pref_key_sort"
        android:defaultValue="modified"
        android:entries="@array/sort_order"
        android:entryValues="@array/sort_order_values" />

Вы можете видеть, что я пытаюсь установить значение по умолчанию «изменено», которое является значением, найденным в @array/sort_order_values:

<string-array name="sort_order_values">
    <item>modified</item>
    <item>created</item>
    <item>name</item>
</string-array>

Однако при запуске Preferences Activity ни один из элементов не выбран по умолчанию.

Я попытался добавить следующую строку в свою активность, но это ничего не изменило (где pref_main — это XML-файл, определяющий настройки):

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

Любая помощь приветствуется!

Павел


person Paul Mennega    schedule 23.02.2011    source источник


Ответы (1)


Возможно, вы только что установили неправильное значение (без соответствующего элемента в массиве значений) при первом запуске приложения. Теперь Android запоминает ваш первый выбор. Попробуйте вручную удалить приложение (Меню >> Настройки >> Приложения >> Управление приложениями >> >> Удалить). Это должно помочь.

person Tomasz Ściepłek    schedule 07.08.2011