首页
学习
活动
专区
工具
TVP
发布

Android EditText监听回车键并处理两次回调问题

前言 我们都知道,在登面,搜索等等有EditText控件的界面上,当用户输入完内容后,点击回车键执行逻辑会有非常好的用户体验,所以今天我们来学习如何监听EditText监听回车键并处理监听时发生了两次回调问题...boolean onKey(View v, int keyCode, KeyEvent event) { return false; } }); } 接下来在onKey方法中监听回车键...: onKey: 按下回车键 E/MainActivity: onKey: 按下回车键 为什么我们会看到两次日志输入呢?...两次回调解答并解决 我们都知道,当我们按某个键的时候,键盘有按下和抬起两个操作,所以这里两次回调就是回车按下时,回调一次,回车键抬起时,回调一次。...: 按下回车键 也可以修改editText的回车样式,即是把EditText的ImeOptions属性设置成不同的值,Enter键上就会显示不同的文字或图案 actionNone : 回车键,按下后光标到下一行

1.5K31
您找到你想要的搜索结果了吗?
是的
没有找到

回车与换行的故事

以前在学汇编的时候,一直不知道老师在换行时,总会打一个换行符和回车符,原来他们还有这么一个故事…....为了解决这个字符丢失的问题,研制人员就在每行的后面添加了两个表示一行结束的字符:一个叫回车(carriage return),相当于告诉打字机,把光标在水平方向上移到最左边;一个叫换行(line feed...这就是回车和换行的由来。 后来,计算机出现了,这两个概念也被拿了过来。但是那时候储存设备非常昂贵,一些人认为用两个字符用来表示一行的结尾非常浪费,于是产生了分支,不同的厂商有不同的处理方法。...在这些操作系统中,Unix操作系统每行结尾只有换行,即”\n”;Windows则是回车+换行,即“\r\n”;而Mac系统里则使用回车来代表结尾,即“\r”。

1.9K30

怎样区分条码枪输入后触发的回车与键盘回车

今天在做条码枪扫描商品条码来选择商品时,发现有一个矛盾:条码枪其实是模拟键盘事件的:先模拟敲击键盘,输入它所扫描到的条码,在输入完毕后,再模拟敲击键盘的回车事件。...在经过一些思考与尝试后,用以下的办法解决了,这里先说一下思路,代码稍后整理一下再贴上来:在扫描枪扫描一个条码后,触发的事件中,条码文本框本身的回车事件是会先触发的,继而再到页面的回车事件触发。...最初的想法是在文本框的回车事件响应方法中中止整个页面的事件监听,不过试过多个方法,发现无效,所以只有想一些HACK出来解决了。嘿嘿。...当鼠标焦点在条码输入框的时候,它的值一定是空的,而当它失去焦点时,我们可以人为让它的值为空,再当页面的回车触发时,我们就可以通过条码输入框的值是否为空也判断本次回车空间是由条码枪触发还是由用户按键盘触发了...先判断条码录入框的值是否为空,如果为空,就直接return了,如果非空的话,证明当前回车不是由条码枪触发的,可以尝试进行表单的提交操作,这样就OK啦。

2.3K10
领券