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(..)オーバーライドされたメソッドを使用してください。すなわち

 @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 に答える