安卓 - 如何监听数字键盘的按键事件?

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

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

alt text

然而,当我以以下模式显示软输入键盘时,它不起作用

alt text

为什么会这样呢?

1个回答

2

这是因为数字键盘有不同的按键代码。不幸的是,它们只在API Level 11 (Android 3.0, Honeycomb)中引入,因此,为了最大兼容性,您需要找到另一种方法来解决这些问题。


3
在特定的textview中,您可以使用android:digits="0123456789"在xml文件中来隔离输入。完成此操作后,您不需要在Java中添加任何错误处理代码。 - CQM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接