我正在使用keylistener获取关键点击。问题是,一旦你点击删除键,下一个键敲击不会注册。之后的关键点继续工作。如果我连续点击2个删除,它们可以工作,只有其他键没有。他们只是消失了。
我在“if(keycode”部分)之前进行了日志测试,并且在按下第一次删除后没有显示任何内容,除非是另一次删除。
我正在使用以下代码(感谢Shawn)。:
itemPrice.setKeyListener(new CalculatorKeyListener());
itemPrice.setRawInputType(Configuration.KEYBOARD_12KEY);
class CalculatorKeyListener extends NumberKeyListener {
public int getInputType() {
return InputType.TYPE_CLASS_NUMBER;
}
@Override
public boolean onKeyDown(View view, Editable content, int keyCode, KeyEvent event)
{
if (keyCode >= KeyEvent.KEYCODE_0 && keyCode <= KeyEvent.KEYCODE_9) {
digitPressed(keyCode - KeyEvent.KEYCODE_0);
} else if (keyCode == KeyEvent.KEYCODE_DEL) {
deletePressed();
}
return true;
}
@Override
protected char[] getAcceptedChars() {
return new char[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
}
}
有了这个问题,keylistener对我没有任何价值。必须有一些我缺少的东西。
谢谢,