在Android上,当您要向用户显示在那里键入的内容(或未键入的内容)错误(称为“表单验证”)时,您可以为任何EditText视图设置错误指示.
甚至还有一个很好的图书馆(here),很多帖子都有如何使用它.
一切都运行良好,直到我在AndroID 4.2的nexus 4上运行它.
问题
有时,它只是不会显示错误的图标.在这种情况下,只有当我给editText(有问题)焦点时,它才显示气泡,但它是空的并且不显示错误的图标.
此外,在所有情况下,气泡总是空的.
为什么会发生,我该如何解决?
注意:我使用actionbarSherlock库,所以我需要使用他们的主题或基于他们的主题.
编辑:
这里有一些截图:
androID 4.2.2:
androID 2.3.5:
编辑:
在我认为这是自己解决之后,我终于找到了这个错误发生的时间:
如果焦点在另一个没有错误的editText上,并且验证错误在另一个editText上,则指示器不会显示,直到editText获得焦点.
尝试将主题更改为更暗的主题,例如:
<style name="AppBasetheme" parent="androID:theme.Black">
它应该解决你的问题.我之前发现了类似的问题,并通过更改主题来纠正这个问题.
但我没有多少研究,但我觉得这是AndroID问题,泡沫应该尝试根据主题更改文本颜色.
如果它能解决您的问题,请告诉我.
问题2:您正在谈论的另一个没有关注焦点的问题,您可以考虑以下链接:Text Truncating and Focus Issue.
—————————————-更新后的答案——– ————————————-
Q1) What should I add to the theme configuration in order for it to always work,no matter what theme I use?
根据我的发现,这里有一些结果:
[注意:仅适用于运行3.0及更高版本的设备]
如果您的构建目标是:
>小于11,然后使用
parent="androID:theme.light" --> setError() message doesn't work or shows very faded text colour almost blending with color whiteparent="androID:theme" --> setError() message works
>大于11,然后使用
parent="androID:theme.Holo.light" --> setError() message worksparent="androID:theme.Holo" --> setError() message works
因为,您的项目支持低于11 API级别的设备,并且您希望支持4.0及以上,您最好的选择是将HoloEverywhere集成到您的项目中以解决您的问题,并且您将能够使用ActionbarSherlock同样,为了兼容性,请查看此SO Post.
Q2) What are the available configurations for the error indication UI ?
大多数情况下,您可以自定义drawables和图标,但我怀疑您将能够配置您的文本和背景(如果有人知道更多可能会指出这一点)
我建议你查看SO Post以获得即时答案.
为了确定正确的焦点,对于每个验证检查,您可以放置以下代码:
EditText.setFocusableIntouchMode(true);EditText.requestFocus();EditText.setError("My Error Text");
如有任何问题,请告诉我.
总结以上是内存溢出为你收集整理的android 4.2没有显示错误指示符(表单验证)?全部内容,希望文章能够帮你解决android 4.2没有显示错误指示符(表单验证)?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)