开发者

Android - Listen for key presses on Numeric keypad?

I use the fo开发者_JS百科llowing code to listen for the key presses of 0 - 9 from the soft input keyboard on Android:


@Override
        public boolean onKeyDown(int keyCode, KeyEvent event)  {

            if(keyCode == KeyEvent.KEYCODE_0)
            {
                return super.onKeyDown(keyCode, event);
            }

            if(keyCode == KeyEvent.KEYCODE_1)
            {
                return super.onKeyDown(keyCode, event);
            }

            if(keyCode == KeyEvent.KEYCODE_2)
            {
                return super.onKeyDown(keyCode, event);
            }

            if(keyCode == KeyEvent.KEYCODE_3)
            {
                return super.onKeyDown(keyCode, event);
            }

            if(keyCode == KeyEvent.KEYCODE_4)
            {
                return super.onKeyDown(keyCode, event);
            }

            if(keyCode == KeyEvent.KEYCODE_5)
            {
                return super.onKeyDown(keyCode, event);
            }

            if(keyCode == KeyEvent.KEYCODE_6)
            {
                return super.onKeyDown(keyCode, event);
            }

            if(keyCode == KeyEvent.KEYCODE_7)
            {
                return super.onKeyDown(keyCode, event);
            }

            if(keyCode == KeyEvent.KEYCODE_8)
            {
                return super.onKeyDown(keyCode, event);
            }

            if(keyCode == KeyEvent.KEYCODE_9)
            {
                Log.d("Keycode", "Got KeyCode 9");
                return super.onKeyDown(keyCode, event);
            }

            return true;
        }

The code works when i display the soft input keyboard in the following mode:

Android - Listen for key presses on Numeric keypad?

However it does not work when I display the soft input keyboard in the following mode:

Android - Listen for key presses on Numeric keypad?

Why is this?


It is because there are different keycodes for the number pad. Unfortunately they were only introduced in API Level 11 (android 3.0, honeycomb) so you will have to find another way to address those guys for maximum compatibility.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜