【发布时间】:2015-05-01 18:59:43
【问题描述】:
我正在开发一个远程控制应用程序,需要检测用户何时按下空文本字段上的<x 删除按钮以发送此字符并从远程计算机中删除某些内容。
如何检测到用户按下了Android键盘上的<x删除按钮?
我尝试在关键听众上投放广告,但这似乎不起作用。
final EditText edittext = (EditText) findViewById(R.id.editText);
edittext.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
Log.i("KEYCODE", "" + keyCode);
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
// Perform action on key press
return false;
} else if (edittext.length() == 0) {
if(keyCode == KeyEvent.KEYCODE_DEL) {
//perform erase when the text field is empty
}
}
return false;
}
});
【问题讨论】:
-
BACKSPACE、TAB、ENTER、RETURN、ESC 和 DELETE)不需要检查密钥是否已编码;对于那些键,你应该直接使用 key 变量 46 is keyCode for delete
-
我刚刚在屏幕上添加了一个相当于删除的按钮。我用键盘显示/隐藏它
-
酷,能看到吗?
-
我已经开始这个问题来处理删除按钮的实现,相当于软键盘删除:stackoverflow.com/questions/30103895/…
-
你找到解决这个问题的方法了吗? onKeyListener 适用于硬件键盘,适用于软件键盘可覆盖 editText 中的 InputConnection(新的自定义 InputConnectionWrapper 具有覆盖 deleteSurroundingText 方法),但我更喜欢单一解决方案
标签: java android keyboard onkeydown textedit