0

我有这段代码可以监听 ENTER 和 MULTIPLY 并在它们被按下时调用一个方法。问题是它只在按下 enter 时调用它,它不适用于乘法?我究竟做错了什么 ?

 @Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        if (event.getAction() == KeyEvent.ACTION_UP) {

            enter();

            return true;
        }




    }
    if (event.getKeyCode() == KeyEvent.KEYCODE_NUMPAD_MULTIPLY) {
        if (event.getAction() == KeyEvent.ACTION_UP) {

            enter();

            return true;
        }




    }
    return super.dispatchKeyEvent(event);
};

编辑:尝试KEYCODE_STAR仍然不起作用..它被窃听了吗?

4

1 回答 1

0

改用下面onKeyDown(..)的覆盖方法。IE

 @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_ENTER) {
        enter();
        return true;
    }

    if (event.getKeyCode() == KeyEvent.KEYCODE_NUMPAD_MULTIPLY) {
        enter();
        return true;               
    }

    return super.onKeyDown(keyCode, event);
}

查看这个 SO Q&A 线程以获得进一步的解释

于 2013-06-29T13:40:43.880 回答