Android onKeyDown和onKeyUp事件触发两次
我找了又找,找不到任何能完全解释发生了什么的东西。基本上,onKeydown和onKeyUp事件都会触发两次。在安卓4.1中,我没有任何问题,但这名客户升级到安卓4.2.2后,问题就开始了。我在文档中找不到任何表示更改的内容,但我发现这是Android2.x中的一个问题Android onKeyDown和onKeyUp事件触发两次,android,Android,我找了又找,找不到任何能完全解释发生了什么的东西。基本上,onKeydown和onKeyUp事件都会触发两次。在安卓4.1中,我没有任何问题,但这名客户升级到安卓4.2.2后,问题就开始了。我在文档中找不到任何表示更改的内容,但我发现这是Android2.x中的一个问题 public boolean onKeyDown(int keyCode, KeyEvent event) { char pressedKey = (char) event.getUnicodeChar();
public boolean onKeyDown(int keyCode, KeyEvent event) {
char pressedKey = (char) event.getUnicodeChar();
String TAG = null;
if (event != null && (event.getAction() == KeyEvent.ACTION_DOWN))
{
Log.d(TAG, "onKeyDown - keyCode = " + keyCode);
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
{
if(currentOrderLineDetailCollection.size()>0)
{
DisplayRemoveAlert(this);
}
}
default:
char stkeyCode = pressedKey;
UPCNum += stkeyCode;
}
}
if (UPCNum.length() >= 12) {
Bundle extras=getIntent().getExtras();
Intent intent1 = new Intent(OrderDetail_Activity.this, HandheldScanner_Activity.class);
intent1.putExtra("UPCNum", UPCNum.trim());
startActivity(intent1);
UPCNum="";
}
return super.onKeyDown(keyCode, event);
}
您检查过事件中的repeat值了吗?没有,我没有,但我刚刚实现了它,它仍在重复字符。我正在使用蓝牙条形码扫描仪,但我不认为这是问题所在,因为我在安卓4.1上没有同样的问题。因此,我在安卓虚拟机上测试了这一理论,我没有看到它发生在那里。有人有什么想法吗?我同意输入设备可能不是问题所在。如果您正在检查重复计数(就像我在这里添加的)并且仍然得到重复值,那么我需要更多信息来帮助您。也许打印出logcat中事件的get方法中的所有值……我不确定您在寻找什么,但这是唯一的事件以及与事件相关的所有代码。基本上,扫描器就像一个键盘,所以每一个条形码都会触发keydown/keydup。我得到的输出是upc编号的前6位数字,每个数字重复,即条形码0123456789012将返回00112233445,因为它符合我的UPCNum.length()检查。如果我删除该检查,我会得到完整的12位条形码,每个字符都是重复的。