4

我使用以下代码从 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;
        }

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

替代文字

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

替代文字

为什么是这样?

4

1 回答 1

2

这是因为数字键盘有不同的键码。不幸的是,它们仅在 API 级别 11(android 3.0,honeycomb)中引入,因此您必须找到另一种方法来解决这些问题以获得最大的兼容性。

于 2011-03-23T20:06:13.683 回答