Android - 在数字键盘上听按键操作?

时间:2010-10-21 12:35:41

标签: android keycode keyevent android-softkeyboard numeric-keypad

我使用以下代码从Android上的软输入键盘上按下0 - 9的按键:


@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;
        }

当我在以下模式下显示软输入键盘时,代码有效:

alt text

但是,当我在以下模式下显示软输入键盘时,它工作:

alt text

为什么会这样?

1 个答案:

答案 0 :(得分:1)

这是因为数字键盘有不同的键码。不幸的是,他们只是在API Level 11(android 3.0,蜂窝)中引入,所以你必须找到另一种方法来解决这些人的最大兼容性。