java在安卓软键盘上监听每个按键事件 6 月,3 周 Questions & Answers 4366 我不想听软键盘事件。我试过setOnKeyListener和setKeyListener,但都不起作用。有人知道怎么听软键盘吗
# 1 楼答案 我也有同样的问题。但我所做的是使用一个已经完成的库。检查此链接:androidLibrary 只要按照这一步走,你就完成了。导入库,然后使用提供给您的代码 您只需导入依赖项,如: dependencies { compile 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.0.0' } 并实施此方法: KeyboardVisibilityEvent.setEventListener( getActivity(), new KeyboardVisibilityEventListener() { @Override public void onVisibilityChanged(boolean isOpen) { // some code depending on keyboard visiblity status } }); 这是最基本的主要功能
# 2 楼答案 假设您在较新的Android版本上使用软键盘,那么下面来自KeyEvent reference的简介解释了获取软键事件的关键限制 “由于软输入法可以使用多种创造性的文本输入方式,不能保证软键盘上的任何按键都会生成按键事件:这是由IME自行决定的,事实上,不鼓励发送此类事件。绝不能依赖软输入法接收任何按键的按键事件。特别是,默认的软件键盘永远不会向任何针对Jelly Bean或更高版本的应用程序发送任何按键事件,只会向针对冰淇淋三明治或更早版本的应用程序发送一些按delete键和return键的事件。请注意,无论版本如何,其他软件输入方法可能永远不会发送关键事件。如果需要与软件键盘进行特定的交互,请考虑使用像IMEYActhOngION这样的编辑器操作,因为它给用户更多的可见性,说明您的应用程序对按键的反应。" 我认为使用TextWatcher接口可能是最接近你想要的
# 1 楼答案
我也有同样的问题。但我所做的是使用一个已经完成的库。检查此链接:androidLibrary
只要按照这一步走,你就完成了。导入库,然后使用提供给您的代码
您只需导入依赖项,如:
并实施此方法:
这是最基本的主要功能
# 2 楼答案
假设您在较新的Android版本上使用软键盘,那么下面来自KeyEvent reference的简介解释了获取软键事件的关键限制
“由于软输入法可以使用多种创造性的文本输入方式,不能保证软键盘上的任何按键都会生成按键事件:这是由IME自行决定的,事实上,不鼓励发送此类事件。绝不能依赖软输入法接收任何按键的按键事件。特别是,默认的软件键盘永远不会向任何针对Jelly Bean或更高版本的应用程序发送任何按键事件,只会向针对冰淇淋三明治或更早版本的应用程序发送一些按delete键和return键的事件。请注意,无论版本如何,其他软件输入方法可能永远不会发送关键事件。如果需要与软件键盘进行特定的交互,请考虑使用像IMEYActhOngION这样的编辑器操作,因为它给用户更多的可见性,说明您的应用程序对按键的反应。"
我认为使用TextWatcher接口可能是最接近你想要的