2011-05-31 11 views

答えて

5

をあなたがのEditTextにonKeyListener()を設定し、そのようにキーコードを取得することができます。たとえば:

editText.setOnKeyListener(new View.OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     switch(keyCode) { 
      case KeyEvent.KEYCODE_0: 
       //handle code for pressing 0 
       break; 
      default: 
       break; 
     } 
    } 
}); 

そして、あなたのswitch声明の中で、あなたが必要とするキーコード何でも扱います。完全なリストはKeyEvent constantsにあります。

編集:ニコラスが言及したように、検証やそのようなことについて、TextWatcherは、どんな文字が入力されたかを知る必要がある場合は望ましい解決策であるかもしれません(例えば 'A'対 'a'キーリスナーでシフトキーがアクティブかどうかのロジックを処理する必要があるため)。どのキーが押されたのかを知る必要がある場合は、OnKeyListenerをお勧めします。

+0

私たちは直接キーを知ることができます – Kannan

+0

onKeyメソッドに渡されたKeyEventを使用し、その上で 'getNumber()'を呼び出すことができます。たとえば、 'a'キーが押された場合、 'char key = event.getNumber()'は 'a'を返します。もし英数字でもシンボルでもなければ、0を返します。http://developer.android.com/reference/android/view/KeyEvent.html#getNumber() – kcoppock

+2

また、 'int key = event.getUnicodeChar(event (alt、shiftなど) – kcoppock