按下大多数键盘按键时onKeyUp没有触发

时间:2014-09-18 09:37:18

标签: android keyboard listener android-ui

在我的Android应用程序中,我想在每次按下键盘上的键时执行一些逻辑,例如,我想评估他们是否键入了一个"魔术短语"。

为了做到这一点,我在我的Activity中覆盖了方法onKeyUp并试验了它是否通过使它发射Toast来发射。

 @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        Toast toast = Toast.makeText(this, "Key Down", Toast.LENGTH_LONG);
        toast.setGravity(Gravity.TOP, 0, 0);
        toast.show();
        return super.onKeyUp(keyCode, event);
    }

问题是,当我按下键盘上的数字或字母时,Toast没有显示。仅在按下backspace时显示。这是为什么?

如何开始使用所有按键?

1 个答案:

答案 0 :(得分:1)

通过在我的TextChangedListener字段中添加EditText来结束解决此问题。

这是我的简单代码,只是用数字计数显示一个小吐司:

            EditText passcodeInput = (EditText) findViewById(R.id.passcodeInput);
            passcodeInput.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {

                }

                @Override
                public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {

                }

                @Override
                public void afterTextChanged(Editable editable) {
                    digitsPressed++;
                    Toast.makeText(Passcode.this, Integer.toString(digitsPressed), Toast.LENGTH_LONG).show();
                }
            });