如何在android中获取密钥码
我有以下代码:如何在android中获取密钥码,android,Android,我有以下代码: tv.setOnKeyListener(new View.OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { switch(keyCode) { case KeyEvent.KEYCODE_0: Log.v(TAG, "Keycode_0");
tv.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
switch(keyCode)
{
case KeyEvent.KEYCODE_0:
Log.v(TAG, "Keycode_0");
return true;
//break;
case KeyEvent.KEYCODE_1:
Log.v(TAG, "Keycode_1");
return true;
//break;
case KeyEvent.KEYCODE_D:
Log.v(TAG, "Keycode_D");
return true;
//break;
case KeyEvent.KEYCODE_2:
Log.v(TAG, "Keycode_2");
return true;
//break;
case KeyEvent.KEYCODE_TAB:
Log.v(TAG, "Keycode_TAB");
return true;
//break;
case KeyEvent.KEYCODE_DEL:
Log.v(TAG, "Keycode_DEL");
return true;
//break;
case KeyEvent.KEYCODE_COMMA:
Log.v(TAG, "Keycode_COMMA");
return true;
//break;
case KeyEvent.KEYCODE_ENTER:
Log.v(TAG, "KEYCODE_ENTER");
i=KeyEvent.KEYCODE_ENTER;
Log.v(TAG, "KEYCODE_ENTER"+i);
return true;
//break;
case KeyEvent.KEYCODE_SHIFT_LEFT:
Log.v(TAG, "KEYCODE_SHIFT_LEFT"+KeyEvent.KEYCODE_SHIFT_LEFT);
return true;
//break;
case KeyEvent.KEYCODE_SHIFT_RIGHT:
Log.v(TAG, "KEYCODE_SHIFT_RIGHT"+KeyEvent.KEYCODE_SHIFT_RIGHT);
return true;
//break;
case KeyEvent.KEYCODE_SPACE:
Log.v(TAG, "KEYCODE_SPACE"+KeyEvent.KEYCODE_SPACE);
return true;
//break;
default:
break;
}
return false;
}
});
但它仅适用于
enter
和delete
键。对于其余的钥匙,它不起作用。我想把它用于shift
和caps lock
键。为什么你对break语句进行了注释。请取消对break语句的注释,然后重试。在编辑文本中使用此侦听器:
editText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
return false;
}
});
因为返回语句,所以不需要它。大多数情况下,软键盘不使用按键代码。看到这个答案了吗