Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android keylistener丢失按键_Android_Keylistener - Fatal编程技术网

android keylistener丢失按键

android keylistener丢失按键,android,keylistener,Android,Keylistener,我正在使用一个按键侦听器来获取按键。问题是,一旦您点击delete键,下一次点击的键没有注册。之后的按键继续工作。如果我连续点击2次删除,它们会工作,只是没有其他键。他们就这样消失了 我在if-keycode部分之前加入了一个日志测试,在按下第一次删除后它什么也不显示,除非它是另一次删除 我正在使用以下代码,谢谢Shawn: itemPrice.setKeyListener(new CalculatorKeyListener()); itemPrice.setRawInputType(Confi

我正在使用一个按键侦听器来获取按键。问题是,一旦您点击delete键,下一次点击的键没有注册。之后的按键继续工作。如果我连续点击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对我来说没有任何价值。一定有什么东西我错过了


谢谢,

当您从onKeyDown中删除除日志以外的所有内容时,是否可以重现此行为?只是为了确保你在deletePressed方法中没有做错任何事情……是的,我可以。事实上,如果在任何一个地方除了日志之外什么都没有,同样的情况也会发生。谢谢。很抱歉,这两个文件都有itemPrice.setText。如果没有它们,它将捕获所有击键。但其目的是显示/控制数据输入。