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

标签 android verification android-preferences

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

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

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

有什么想法吗?

最佳答案

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

The interface has only one callback method, onSharedPreferenceChanged()

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

关于android - PreferenceActivity 验证用户输入并显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4754802/

相关文章:

android - Android Studio 3 中的 "Sync project with gradle files"按钮在哪里?

android - 如何在gradle中强制下载aar版本的依赖项

android - 如何存储小部件的数据?

android - 从非 PreferenceActivity/Fragment 更改首选项值

android - 在unity3D android中本地保存大量数据的最佳方法?

java - 如何在android中为Toast自定义背景、背景颜色和文字颜色

.net - 如何禁用所有 .Net 程序集的强名称验证?

java.lang.VerifyError : Expecting a stackmap frame at branch target JDK 1. 7 目标站点

google-app-engine - Google Apps 域上的 Google App Engine

android - 是否可以将数组或对象添加到 Android 上的 SharedPreferences