Android EditText 控件问题: 点击EditText,能弹出软键盘,但却触发不了它的OnClick事件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android EditText 控件问题: 点击EditText,能弹出软键盘,但却触发不了它的OnClick事件?相关的知识,希望对你有一定的参考价值。

小弟做一个通讯录,有一个功能就是:点击一个Button,可以转换软键盘的类型(数字和字母),方便用户在EdiText中,输入手机号或姓名查找联系人,然后,当点击其他地方,可以隐藏软键盘,然后再点击EditText,能弹出软键盘,但触发不了事件,第二次点击就可以了。
这个问题困扰了我一天了,上网找资料也就解决不了,但下周三就要交程序了,急急急!!!~

只剩下3分了,连悬赏都不够,但要能解决了,小弟日后定会重谢!

参考技术A 那就不要用onClick事件了,改用onTouch事件。亲测可用。(居然都没人放出靠谱的解决方案) 参考技术B EdiText 的xml属性里有个 phonenumber的 给EdiText加上 phonenumber就只会弹出数字的软键盘。在代码里的方法是setKeyListener(KeyListener); 参考技术C EdiText 的xml属性里有个 phonenumber的 给EdiText加上 phonenumber就只会弹出数字的软键盘。在代码里的方法是setKeyListener(KeyListener); 参考技术D EditText的inputType属性可以设置很多种输入内容的样式,改变它的这个属性值就应该就可以实现你说的那个功能了。 第5个回答  2012-07-27 你可以写个线程去处理试试

android中ListView中的EditText不可编辑!!!

EditText点击事件好使,就是聚焦不了,求大神指点!!!!

这个问题应该出在你自定义的ListView控件上,如果使用的不是自定义的ListView控件,问题还真不好解决,这是由于ListView的逻辑造成的追问

不是自定义的。网上的各种答案都试了都不好用。。但是我想不通,为什么edittext的onclick竟然好用

追答

如果不是自定义的ListView控件,就不可能是用edittext的onclick因为标准SimpleAdapter没有实现其适配器中控件的单击事件,你认为好用,我觉得可能是你的错觉,因为原理是不支持的

追问

谢谢 找到答案了,是我的item中设置了android:descendantFocusability

参考技术A 如果怀意是焦点引起的,尝试设置listview的 android:descendantFocusability 属性:
属性的值有三种:

beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点追问

谢谢 找到答案了,是我的item中设置了android:descendantFocusability

参考技术B setEnabled(true) android:enabled="true" 可编辑
setEnabled(false) android:enabled="false" 不可 前面是在代码里设置 后面是在xml里面设置

以上是关于Android EditText 控件问题: 点击EditText,能弹出软键盘,但却触发不了它的OnClick事件?的主要内容,如果未能解决你的问题,请参考以下文章

Android 带清除功能的输入框控件EditText

listview点击控件显示EditText,键盘弹出消失的解决方法:

android中ListView中的EditText不可编辑!!!

Android 带清除功能的输入框控件EditTextWithDel

Android EditText如何设置默认是不弹出软键盘需要点击是才跳出来

Android 带清除功能的输入框控件ClearEditText