EditText 点击事件小问题
来源:互联网 发布:一键开关蜂窝数据 编辑:程序博客网 时间:2024/04/30 20:55
EditText 点击事件小问题
怎么回事
最近在工作的时候遇到一个小小的磕绊,给EditText添加点击事件的时候,需要对控件点击两次,才能触发自定义的 OnClickListener,这是怎么回事?
找了下谷娘才知道,EditText第一次点击的时候,会先获得屏幕的焦点,将首次TouchEvent消费掉,并不会触发自定义的 onClick 监听。
这样的话最简单直接的办法就是,再为 EditText 加一个 onFocusChangeListener ,当获取到焦点的时候,执行自定义的逻辑。另外,如果加了FocusChange就删掉OnClick的监听的话,在具有焦点的情况下继续点击将不会执行自定义逻辑。
后来看到一些说法,实际上为EditText添加OnClick监听是挺不科学的,原因是EditText作为一个输入控件,用户使用控件的过程中有可能因为输入错误等原因,对控件进行点击交互。那么在编写这段代码的时候,有可能就需要加入许多对用户行为的判断以及过滤,这样写出来的代码并不良好,也容易出错。
办法
也许在UI上面,只是需要一个看起来像 EditText 的控件,并不需要EditText内置的交互逻辑。这种情况其实可以用一个TextView将其样式修改成EditText的样子,以及这时候如果需要自定义逻辑,只要一个点击监听就可以了。
<TextView style="@android:style/Widget.EditText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我看起来像个EditText!" />
也可以自定义背景以及文本样式——
<TextView android:background="@drawable/abc_edit_text_material" android:textAppearance="@style/TextAppearance.AppCompat.Medium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我看起来像个EditText!" />
0 0
- EditText 点击事件小问题
- EditText右侧小图标点击事件
- EditText的点击事件
- EditText 设置点击事件
- EditText的点击事件
- Android中关于EditText点击事件的响应问题记录
- EditText点击事件:弹出单选框
- EditText右边图标点击事件
- ListView中item点击事件和item中radiobutton的点击editText输入焦点问题
- 解决dialog中edittext点击两次才响应事件的问题
- EditText监听输入完成和设置点击事件时与父控件的冲突问题
- EditText,TextView部分文字点击事件响应
- 处理edittext中的drawable点击事件?
- 怎么处理edittext中的drawable点击事件?
- 怎样编写edittext的点击事件
- EditText的点击事件屏蔽键盘响应
- android 获取EditText的点击事件!
- EditText无法快速响应点击事件
- Nginx系列(十八.)nginx列出目录
- 设置开机启动脚本环境
- Xcode6为什么干掉pch(Precompile Prefix Header)&如何添加pch文件
- 【javascript数据结构】----数组
- 开发中遇到的问题(2015-05-23)
- EditText 点击事件小问题
- 表达式树
- 2015年第八周项目三:分数类中的运算符重载(2)
- 如何写一个Pod,并发布到CocoaPods上
- 金沙娱乐城开心一笑
- mysql 姓名首字母排序
- Android透明圆形进度条对话框的设置
- UILable常见用法 - iOS - UI基础知识总结3
- ssh出现的问题