EditText
でどのキーが押されたか知りたいですか?たとえば、がである場合は、値を 'a'として取得したいとします。これどうやってするの?EditTextで押されたキーを取得する
4
A
答えて
0
は、ここに私の答えを見てみましょう:
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をお勧めします。
私たちは直接キーを知ることができます – Kannan
onKeyメソッドに渡されたKeyEventを使用し、その上で 'getNumber()'を呼び出すことができます。たとえば、 'a'キーが押された場合、 'char key = event.getNumber()'は 'a'を返します。もし英数字でもシンボルでもなければ、0を返します。http://developer.android.com/reference/android/view/KeyEvent.html#getNumber() – kcoppock
また、 'int key = event.getUnicodeChar(event (alt、shiftなど) – kcoppock