Как определить Android ListPreference в Xml, значения которого являются целыми числами?

Действительно ли возможно определить ListPreference в Xml и получить значение от SharedPreferences с помощью getInt? Вот мой Xml:

<ListPreference android:key="@string/prefGestureAccuracyKey"
    android:title="@string/prefGestureAccuracyTitle" android:summary="@string/prefGestureAccuracyDesc"
    android:entries="@array/prefNumberAccuracyLabels" android:entryValues="@array/prefNumberAccuracyValues"
    android:dialogTitle="@string/prefGestureAccuracyDialog"
    android:persistent="true" android:defaultValue="2"
    android:shouldDisableView="false" />

И я хочу получить значение с чем-то как: интервал val = sharedPrefs.getInt (ключ, defaultValue).

В данный момент я должен использовать getString и проанализировать результат.

18
задан Rob Kent 16 June 2011 в 07:37
поделиться

1 ответ

Насколько я понимаю, ListPreference может работать только со строковыми массивами. Вам нужно будет использовать getString () и самому преобразовать в целое число. См. http://code.google.com/p/android/issues/detail?id=2096 для отчета об этой ошибке. Не похоже, что Google планирует расширить ListPreference для обработки чего-либо, кроме строк.

Также: вам также необходимо сохранить предпочтение в виде строки. В противном случае действие ваших предпочтений завершится сбоем при запуске и попытке чтения строкового значения.

40
ответ дан 30 November 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: