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、ハニカム) でのみ導入されたため、最大限の互換性を得るには、これらの人に対処する別の方法を見つける必要があります。

于 2011-03-23T20:06:13.683 に答える