在Android里面可以通过setOnEditorActionListener监听回车达到屏蔽回车按键的目的。它在API的TextView(EditText的父类),谷歌大意这样描述它:它是一个特殊的监听器,用于监听一个Enter键,如果设备具有物理键盘,点击Enter建不会插入回车符,不过按着alt键可以修复。
好吧,看来这个方法挺古老的,都考虑到物理按键了,不过通过测试如果设备不具有物理键盘,这个方法还是可以屏蔽掉软键盘的回车键的,如果设备具有物理按键就无法屏蔽软键盘的回车键了,哎,一直在找解决方案。
实现setOnEditorActionListener接口的onEditorAction ()这个方法有三个参数:
- TextView v 被监听的对象。
- int actionId 动作标识符,如果值等于EditorInfo.IME_NULL,则回车键被按下。
- KeyEvent event 如果由输入键触发,这是事件;否则,这是空的(比如非输入键触发是空的)。
看一下方法:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
可以看到我们对event 进行了非空判断,如果不是用于按键触发的回车,这个值是空的,比如在EditText的属性里加上这句话 android:singleLine=”true”就为空,或者设备带有物料按键它也会报空的,然后通过event.getKeyCode() 获取你按下的键码,和KeyEvent.KEYCODE_ENTER对比可判断你是否点击的回车键。从而达到屏蔽回车按键的目的,不过带有物理键盘的设备就得另说了。
当让也可以这样写:
return actionId == EditorInfo.IME_NULL;
效果是一样的。
本文介绍如何使用setOnEditorActionListener来屏蔽Android中EditText控件的回车键,包括其工作原理及不同设备上的表现。
194

被折叠的 条评论
为什么被折叠?



