Android - 从软键盘捕获输入和删除事件
Android - Capture Enter and Delete events from soft keyboard
我有一个 EditText,我想在用户单击 Enter 或 Delete[=24= 时进行捕获].我尝试使用 onKeyListener 但它没有用。
myEdiText.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
Toast.makeText(getApplicationContext(), "ENTER", Toast.LENGTH_LONG).show();
return true;
case KeyEvent.KEYCODE_DEL:
case KeyEvent.KEYCODE_BACK:
Toast.makeText(getApplicationContext(), "BACKSPACE", Toast.LENGTH_LONG).show();
return true;
default:
break;
}
}
return false;
}
});
当我长按 Enter 按钮时,它会显示 Enter 的 Toast,但我想在单击时显示它。另一方面,删除的祝酒词从未显示。
编辑
当我按下硬件后退按钮
时,会出现用于删除的 Toast
OnKeyListener
仅适用于物理键盘。您必须使用 TextWatcher
。
http://developer.android.com/reference/android/text/TextWatcher.html
我有一个 EditText,我想在用户单击 Enter 或 Delete[=24= 时进行捕获].我尝试使用 onKeyListener 但它没有用。
myEdiText.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
Toast.makeText(getApplicationContext(), "ENTER", Toast.LENGTH_LONG).show();
return true;
case KeyEvent.KEYCODE_DEL:
case KeyEvent.KEYCODE_BACK:
Toast.makeText(getApplicationContext(), "BACKSPACE", Toast.LENGTH_LONG).show();
return true;
default:
break;
}
}
return false;
}
});
当我长按 Enter 按钮时,它会显示 Enter 的 Toast,但我想在单击时显示它。另一方面,删除的祝酒词从未显示。
编辑 当我按下硬件后退按钮
时,会出现用于删除的 ToastOnKeyListener
仅适用于物理键盘。您必须使用 TextWatcher
。
http://developer.android.com/reference/android/text/TextWatcher.html