EditText用于编辑文字,经常需要监听输入的字符,尤其是回车,删除等特殊字符,除了addTextChangedListener这个比较简单的方法之外,还有类似于下面的方法:

 1 editText.setOnKeyListener(new View.OnKeyListener() {
 2             @Override
 3             public boolean onKey(View v, int keyCode, KeyEvent event) {
 4                 Log.d("RFV", "~~ " + keyCode);
 5                 if (event.getAction() == KeyEvent.ACTION_DOWN
 6                         && keyCode == KeyEvent.KEYCODE_DEL) {
 7                     if (itemList.size() > 0 && editText.length() == 0) {
 8                         removeItem();
 9                         if(listener != null)
10                             listener.dataChange();
11                     }
12                 }
13
14                 if(event.getAction() == KeyEvent.ACTION_DOWN
15                         && keyCode == KeyEvent.KEYCODE_BACK){
16                     if(listener != null)
17                         listener.back();
18                 }
19
20                 if (keyCode == KeyEvent.KEYCODE_ENTER) {
21                     String name = editText.getText().toString();
22                     if (!TextUtils.isEmpty(name)) {
23                         addItem(name);
24                         if(listener != null)
25                             listener.dataChange();
26                         editText.setText("");
27                         editText.requestFocus();
28                     }
29                     return true;//直接拦截所有DOWN,UP事件
30                 }
31                 return false;
32             }
33         });

从代码中我们很容易看到这个方法不但可以监听事件(Down和Up),还能监听到底是哪一个按键。下面讲两点,我犯过错误:

1)关于最后的return false:我曾经写过return true,发现不能输入数字(标准输入法下),我的猜测是,在每次EditText接受输入之前,事件都会首先经过OnKeyListener,如果返回true,则事件不会再被传递;

2)关于最后一个判断,之前我也和前面两个判断一样,加入了判断是否是Down事件的判断,然后我发现很奇怪事情,那就是当我点击回车之后,editText一直无法获取焦点,去掉之后可以,一个猜测是因为Down事件返回的是true,所以Up事件一定会传递到这里进行处理,又因为Up事件返回的是false,所以又会继续被处理,而这个时候焦点很可能被转移到键盘(其实不是很准确,应该另有原因)

转载于:https://www.cnblogs.com/lqminn/archive/2013/03/09/2950995.html

【Android】EditText的一个问题相关推荐

  1. android edittext限制字节_android EditText输入限制

    zyz 发表于 2012-5-30 18:19:03 android EditText输入限制 android:digits="1234567890.+-*/%\n()" 限制输入 ...

  2. android edittext html 图片,Android EditText加载HTML内容(内容包含网络图片) -电脑资料...

    android中的Html.fromHtml可以用来加载HTML的内容,fromHtml有三个参数需要设置,第一个是要显示的html内容,第二个就是要说的重点,ImageGetter,用来处理图片加载 ...

  3. Android EditText+ListPopupWindow实现可编辑的下拉列表

    使用场景 AutoCompleteEditText只有开始输入并且与输入的字符有匹配的时候才弹出下拉列表.Spinner的缺点是不可以编辑.所以本文介绍如何使用EditText+ListPopupWi ...

  4. Android EditText不弹出输入法焦点问题的总结

    同样的代码,碰到有EditText控件的界面时有的机子会弹出输入法,有的机子不会弹出.不好意思,这问题我也一头雾水,谁知道可以告诉我,否则我就把这个问题留下来,以后研究android 源码时再搞个清楚 ...

  5. 怎么用Android做登录界面,利用Android怎么制作一个APP登录界面

    利用Android怎么制作一个APP登录界面 发布时间:2020-12-02 17:09:10 来源:亿速云 阅读:79 作者:Leah 这期内容当中小编将会给大家带来有关利用Android怎么制作一 ...

  6. android EditText inputType

    android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用.这也大大的方便的操作.有时需要虚拟键盘只为字符或只为数字.所以inputType尤为重要. < ...

  7. android edittext 不可编辑

    今天,简单讲讲如何让  edittext 不可编辑. 这个很简单,不过之前忘记了,还是查找了部分资料,所以这里记录一下. 1.android:editable="false" ...

  8. android设置输入框输入字符限制,Android EditText限制输入字符的方法总结

    Android EditText限制输入字符的方法总结 最近项目要求限制密码输入的字符类型, 例如不能输入中文.   现在总结一下EditText的各种实现方式,  以比较各种方法的优劣. 第一种方式 ...

  9. Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能。(ArrayList,SQLite)

    Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能.(ArrayList,SQLite) 布局(activity_main.xml): <?xml v ...

  10. android 输入法 悬浮窗口,Android EditText悬浮在输入法之上

    Android EditText悬浮在输入法之上 使用 android:windowSoftInputMode="adjustResize" 会让界面整体被顶上去,很多时候我们不需 ...

最新文章

  1. 如何改变eclipse控制台编码
  2. 互联网金融下一个风口的或许在新农业领域?
  3. mysql优化器分析器_MySQL查询优化器的概念和原理整个执行过程
  4. 说说计算机发展史在你印象里都有哪些内容,《老王》导学案及答案
  5. onLayout与onMeasure
  6. 【BZOJ5251】【九省联考2018】—劈配(网络流)
  7. pod的介绍、命令行创建pod
  8. 如何免费下载百度文库文档
  9. vscode自动排版_微信公众号排版 | 最适合程序员的公众号排版
  10. Python爬取中国票房网所有电影片名和演员名字,爬取齐鲁网大陆所有电视剧名称...
  11. Java中的parallelStream
  12. etr2模式,时力高HXD1C转换开关KRGV+ETR2
  13. CloudNative:云原生(分布式云)的简介(发展演变/为什么需要/优势价值/安全/对比传统企业应用)、四大核心技术、CNCF云原生交互景观、云原生技术的使用经验及方法之详细攻略
  14. [C语言]统计成绩问题:输入某班学生某门课的成绩(最多不超过40人,具体人数由用户键盘输入),用函数编程统计不及格人数。
  15. Javascript实现全屏阅读和复制功能
  16. 用户运营:如何用B端运营思维做用户增长?
  17. ai描边工具怎么打开_AI描边工具命令讲解,教你ai描边功能实用技巧
  18. java zip 字符串_java字符串的压缩解压
  19. 协议(五)-从电报机到智能手机
  20. IDriss是一个Web3身份协议,选择马蹄链注册大概10刀

热门文章

  1. python能绘制统计图吗-使用Python绘制图表大全总结
  2. python 创建txt文件并写入字符串-python创建txt文件
  3. python3.7安装包-Python3.7.6下载
  4. python装饰器作用-python 装饰器
  5. python话雷达图-python使用matplotlib绘制雷达图
  6. 编程软件python下载-Thonny(Python编程工具) v3.2.7 官方版
  7. 开课吧python好吗-如何选择python培训机构?开课吧python培训怎么样?
  8. python自学网站推荐-有哪些值得推荐的Python学习网站?
  9. python编程300集免费-python 300本电子书合集
  10. mybatis中ResultSetHandler的设计与实现