Android - 从软键盘捕获输入和删除事件

Android - Capture Enter and Delete events from soft keyboard

我有一个 EditText,我想在用户单击 EnterDelete[=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 仅适用于物理键盘。您必须使用 TextWatcherhttp://developer.android.com/reference/android/text/TextWatcher.html