在Android App的实际开发中,时常会需要监听软键盘的输入事件。
所以个人在此进行一个总结。
例如:微信和QQ聊天的消息发送,你会发现他的聊天框并没有发送的控件,软键盘的换行或者某个按钮会变成发送;在某些浏览器的输入框,输入内容后,软件盘的某个按钮会有搜索的字样,还有填写内容时的完成按钮等等,这些都可以通过监听键盘和输入框的一些配置实现这些功能。
方法一:dispatchEvent
使用dispatchEvent方法进行键盘的监听,例如我在输入某个用户ID后,点击Enter键盘直接进行搜索。
override fun dispatchKeyEvent(event: KeyEvent?): Boolean {
//&& event.getAction() != KeyEvent.ACTION_UP这个条件是因为dispatchKeyEvent被调用了俩次,导致重复请求,所以把up这个动作去掉
if (event?.keyCode == KeyEvent.KEYCODE_ENTER && event.action != KeyEvent.ACTION_UP) {
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
if (inputMethodManager.isActive) {
//收起当前界面的键盘
inputMethodManager.hideSoftInputFromWindow(this.currentFocus?.windowToken, 0)
}
searchUser()//调用接口,搜索用户

本文总结了在Android应用中监听键盘输入和控制编辑器行为的三种方法:dispatchEvent、KeyListener和setOnEditorActionListener。通过实例展示了如何利用这些技术实现消息发送、搜索等功能,以及不同键盘右下角键的设置和XML/Java代码配合使用。
&spm=1001.2101.3001.5002&articleId=125057404&d=1&t=3&u=776d519f4a73423e9a4ffae07396b60a)
1170

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



