Предпочтения и CheckBoxPreference - PullRequest
       65

Предпочтения и CheckBoxPreference

2 голосов
/ 09 сентября 2010

Документация для PreferenceActivity гласит: «Эти настройки будут автоматически сохраняться в SharedPreferences при взаимодействии пользователя с ними».В этом случае, если я создаю подкласс PreferenceActivity, вызываю addPreferencesFromResource в onCreate, устанавливаю некоторые предпочтения в пользовательском интерфейсе, я ожидаю, что любые изменения, сделанные в моих предпочтениях, должны автоматически сохраняться;и когда я вернусь к своему экрану настроек позже, все настройки должны быть восстановлены.

Причина, по которой я спрашиваю, заключается в том, что CheckBoxPreference работает не так, как ожидалось, при условии, что мое понимание, конечно, верно.Я ожидаю, что если у меня есть CheckBoxPreference, выбор пользователей будет сохранен автоматически при изменении.Разве это не так?

Так может ли кто-нибудь подтвердить мое понимание или исправить меня в случае необходимости?

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

Достаточно сказать, что я немного разочарован в данный момент.

Кстати, я работаю против v2.0 API.

Ответы [ 2 ]

1 голос
/ 10 сентября 2010

Оказывается, моя ошибка была довольно простой.

Я использую strings.xml для хранения имени ключа-флажка и разыменовываю его, как во время выполнения, как мы делаем с метками и т. Д. Ну, в этом значении было разрешено иметь пробел, поэтому, конечно, он не будет работа.

Странная запись была примерно такой:

<string name="key_vibrate_pref">Vibrate preference</string>

И это должно было быть примерно так:

<string name="key_vibrate_pref">ckPrefVibrate</string>

DOH !!!!

1 голос
/ 09 сентября 2010

Я ожидаю, что если у меня есть CheckBoxPreference, выбор пользователей должен автоматически сохраняться при изменении. Разве это не так?

Это прекрасно работает, если они делают положительный выбор. Если они посещают вашу деятельность и не касаются CheckboxPreference, он останется по умолчанию.

...