SeekBarPreference, похоже, не сохраняет свою ценность - PullRequest
2 голосов
/ 11 сентября 2011

У меня есть SeekBarPreference в XML-файле, который отображается (и ползунок работает), но после нажатия кнопки OK значение просто исчезает.

Это мой XML-файл ...

<?xml version="1.0" encoding="UTF-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <SeekBarPreference android:key="NOTE_MINIMUM"
        android:summary="Set the lowest note in the playback sound"
        android:max="125" 
        android:title="Lowest note" 
        android:persistent="true"
        android:defaultValue="25" />

    <CheckBoxPreference android:key="COLOR_CODING"
        android:title="Show playback progress bar" 
        android:summary="string/color_coding_summary"
        android:defaultValue="true" />
</PreferenceScreen>

Я могу получить значение поля COLOR_CODING в моем коде, но не поле NOTE_MINIMUM, которое возвращается как неизвестное поле, используя prefs.getInt("NOTE_MINIMUM", -11);

Но я думаю, что проблема в диалоге настроек. Когда я проверяю поле COLOR_CODING и закрываю, а затем открываю PreferencesScreen, его состояние сохраняется. Когда я перемещаю ползунок в диалоговом окне NOTE_MINIMUM (и нажимаю OK), при повторном открытии приложения показывается ползунок в том виде, в каком он был при инициализации приложения, с ползунком в начале его дорожки.

Может кто-нибудь помочь мне с этой проблемой.

1 Ответ

0 голосов
/ 12 сентября 2011

Отвечено.

В конце я создал (вырезал и вставил чей-то) код SeekBarPreference и превратил его в класс в своем приложении и назвал его, а не класс API.

Однако,это не столько ответ, сколько обходной путь.

Я до сих пор не понимаю, почему android SeekBarPreference, но он не сохраняет свой результат так же, как android CheckBoxPreference (без дополнительного слушателя кода приложения, необходимого для захвата его состояния).

Мне все еще было бы интересно увидеть другой ответ, так как в этом броске ваш собственный код, похоже, является методом, который все остальные используют.

...