Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为android软键盘中的按钮设置onClickListener?_Android_Onclicklistener_Android Softkeyboard - Fatal编程技术网

如何为android软键盘中的按钮设置onClickListener?

如何为android软键盘中的按钮设置onClickListener?,android,onclicklistener,android-softkeyboard,Android,Onclicklistener,Android Softkeyboard,有一种明确的方法可以使用OnEditorActionListener为按钮Done或Next设置onClickListener。但是,我如何为按钮(如扬声器)或字母(如M)设置按钮 因此,在未能使用setOnKeyListener之后,我查看了developer.android并发现以下引用: 因为软输入法可以使用多种创造性的输入方式 文本,不能保证软键盘上的任何按键都会 生成关键事件:这由IME自行决定,并且 不鼓励发送此类事件。你永远不应该依赖别人 接收软输入法上任意键的KeyEvents

有一种明确的方法可以使用
OnEditorActionListener
为按钮
Done
Next
设置
onClickListener
。但是,我如何为按钮(如扬声器)或字母(如M)设置按钮


因此,在未能使用
setOnKeyListener
之后,我查看了developer.android并发现以下引用:

因为软输入法可以使用多种创造性的输入方式 文本,不能保证软键盘上的任何按键都会 生成关键事件:这由IME自行决定,并且 不鼓励发送此类事件。你永远不应该依赖别人 接收软输入法上任意键的KeyEvents。特别地, 默认的软件键盘不会向任何用户发送任何按键事件 以Jelly Bean或更高版本为目标的应用程序,将只发送事件 对于某些应用程序,按delete键和return键 目标是冰淇淋三明治或更早。请注意,其他软件 无论版本如何,输入方法可能永远不会发送键事件。 如果需要的话,请考虑使用编辑动作 与软件键盘的特定交互,因为它提供了更多 让用户了解应用程序对密钥的反应 印刷机


这句话的存在没有任何办法克服它,所以

您是否尝试过使用
onkeylister
?范例

mEditText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_M ){
        // Example for M key
        // Code...
        return true;
    }
    return false;
}
});

您可以阅读有关KeyEvent和其他键代码的更多信息。

我已经尝试过这种方法,我不知道原因,但它甚至没有输入onClick方法。好吧,它只在我使用Next或Done时输入了方法