PreferenceActivity проверяет ввод пользователя и показывает сообщения об ошибках - PullRequest
6 голосов
/ 21 января 2011

Я использую PreferenceActivity для пользователя, чтобы определить определенные настройки для приложения.

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

Когда я обнаруживаю ошибку проверки, я хотел бы оставить диалоговое окно редактирования предпочтений активным на экране, чтобы я мог использовать .getTextEdit() .setError () метод, чтобы установить сообщение об ошибке для информирования пользователя.Однако мне не удалось удержать диалоговое окно активным на экране, поскольку кажется, что оно исчезает непосредственно перед выполнением обратного вызова OnPreferenceChangeListener.

Есть идеи?

1 Ответ

1 голос
/ 28 сентября 2012

Что ж, вы не можете использовать событие ДО того, как пользователь завершит редактирование, как написано в android dev:

Интерфейс имеет только один метод обратного вызова, onSharedPreferenceChanged ()

Что я хотел бы сделать, это реализовать пользовательские настройки, (как объяснено в http://developer.android.com/guide/topics/ui/settings.html#Custom) Но вместо расширения DialogPreference я бы расширил EditTextPreference. Хотя не проверял это, но звучит так, как будто оно должно работать. Удачи:)

...