Android - Слушать нажатия клавиш на цифровой клавиатуре? - PullRequest
2 голосов
/ 21 октября 2010

Я использую следующий код для прослушивания нажатий клавиш 0 - 9 с клавиатуры мягкого ввода на 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;
        }

Код работает, когда я отображаю программную клавиатуру ввода в следующем режиме:

alt text

Однако не работает, когда я отображаю программную клавиатуру ввода в следующем режиме:

alt text

Почему это?

1 Ответ

1 голос
/ 23 марта 2011

Это потому, что существуют разные коды клавиш для цифровой клавиатуры.К сожалению, они были введены только в API Level 11 (Android 3.0, Honeycomb), поэтому вам придется искать другой способ обратиться к этим парням для максимальной совместимости.

...