Настройки Android, кажется, игнорируют setDefaultValue - PullRequest
4 голосов
/ 28 ноября 2011

Я создаю приложение для Android, и у меня есть настройки, сохраненные в классах, загружаемых из Интернета (мы синхронизируем настройки с веб-сайтом), однако, используя PreferenceScreen, они, похоже, игнорируются при использовании правильных API.

В XML я отключил постоянство и проверяю в Java вот так p.setPersistent(false);

затем я устанавливаю значение по умолчанию p.setDefaultValue( boolean );

Я использую только EditTextPreferences и CheckBoxPreferences, и оба они не работают. Я попытался установить его в редакторе, но, похоже, он не работает.

Спасибо

Джо

1 Ответ

5 голосов
/ 04 декабря 2011

Наконец-то удалось это сделать. Благодаря чрезвычайно умным людям из Google они сделали это невероятно трудным, поскольку кажется, что настройки устанавливаются только во время разработки (немного глупо).

Я создал интерфейс под названием FlushPreferences, который реализовал метод, аналогичный setDefault, и создал подклассы классов предпочтений, которые я использовал EditTextPreference и CheckBoxPreference, которые они вызывали внутренней функцией onSetDefaultValue, чтобы они отображались должным образом.

Код: https://gist.github.com/1430073

(P.S. Любой, кто видит это в Google: пожалуйста, исправьте это для Android 4.1 или чего-то еще)

...