当设置onKeyListener时,Backspace / delete键不起作用。
我在EditText上设置了一个OnKeyListener。然后某些键的默认操作无法正常运行。像DELETE / Backspace一样。然后我通过操作里面的字符串改为使用我自己的文本删除功能。但它似乎相当复杂。
我必须选择,创建子串,等等。还有其他解决方案可以使密钥正常运行吗?
答案 0 :(得分:3)
这取决于您使用的IME。 有些IME在不发送KEYCODE_DEL的情况下实现删除功能。 尝试其他IME而不是默认值。
例如,如果长按DEL按钮,某些IME会删除编辑框中的所有文本。 这不能通过KEYCODE_DEL来完成。
答案 1 :(得分:1)
我也有这个问题,我通过在onKeyListener函数中返回false来解决它。这应该对其他键执行正常操作。
.setOnKeyListener(new DialogInterface.OnKeyListener()
{
@Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)
{
//your workarounds;
return false;
}
})
答案 2 :(得分:0)
对于Android附带的默认(LatinIME)Google键盘,有两个已知问题会影响KEYCODE_DEL:问题42904和62306.
我已经对此进行了研究,并设计了一个带代码的解决方法,似乎解决了这两个问题。可以在此处找到该解决方法:
Android - cannot capture backspace/delete press in soft. keyboard