2011-01-21 65 views
6

我正在使用PreferenceActivity为用户定义应用程序的某些设置。PreferenceActivity验证用户输入并显示错误消息

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

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

任何想法?

+0

我不认为这是可以做到的,因为在用户点击确定之前,首选项不会改变,那时候这个盒子已经关闭了,也就是说当监听器被调用时。但是,嘿,如果有人有一些想法或者如果可能的话,我也感兴趣。 – 2011-06-21 17:26:53

回答

1

那么,有没有让你在使用前用户已完成了编辑的事件,写在Android开发人员:

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

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

相关问题