【问题标题】:Android: Intercept onKeyDown() and onKeyUp()Android:拦截 onKeyDown() 和 onKeyUp()
【发布时间】:2015-05-06 12:44:27
【问题描述】:

我想拦截来自硬件键盘的按键事件。例如,当用户按下“a”时,我不希望它写在 EditText 中。因此,当按下并释放“a”键时我返回 true,但无论如何它都写在 EditText 中。怎么了?

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
        case KeyEvent.KEYCODE_A:
            //Here it logs correct, but the letter appears in the EditText anyway
            Log.d("Textboard","A");
            return true;

        default:
            return super.onKeyDown(keyCode, event);
    }
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    switch (keyCode) {
        case KeyEvent.KEYCODE_A:
            //Here it logs correct, but the letter appears in the EditText anyway
            Log.d("Textboard","A");
            return true;

        default:
            return super.onKeyUp(keyCode, event);
    }
}

【问题讨论】:

    标签: java onkeydown intercept


    【解决方案1】:

    活动的onKeyXXX()调用晚于EditText的onKeyXXX()。

    如果你想拦截它,只需覆盖dispatchKeyEvent()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多