PreferenceActivity验证用户输入并显示错误消息

Cin*_*nar 6 verification android android-preferences

我正在使用PreferenceActivity为用户定义应用程序的某些设置.

我还使用OnPreferenceChangeListener接口来获取更改的首选项的通知,并且在该回调中,我可以验证用户的输入,并且我可以在拒绝用户的输入时做出更新决定.

当我检测到验证错误时,我想在屏幕上保持首选项编辑对话框处于活动状态,以便我可以使用.getTextEdit().setError()方法设置错误消息以通知用户.但是,我无法设法在屏幕上保持对话框处于活动状态,因为它似乎在OnPreferenceChangeListener回调执行之前就消失了.

有任何想法吗?

Sea*_*ean 1

好吧,在用户完成编辑之前,没有一个事件可供您使用,如 android dev 中所写:

该接口只有一个回调方法,onSharedPreferenceChanged()

我要做的是实现自定义首选项(如http://developer.android.com/guide/topics/ui/settings.html#Custom中所述),但我不会扩展 DialogPreference,而是扩展 EditTextPreference。虽然还没有测试过,但听起来应该可行。祝你好运 :)