我正在使用物理按键制作 Android 应用程序。 我制作了键码 24(可以更改为唯一键)来在我的代码中执行一些工作,并希望在单击两次时使其执行其他操作。 我尝试了 onKeyMultiple 但它根本不起作用。 下面是我的 onKeyMultiple 代码
@Override
public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {
Log.d("KeyCode Multiple : ", Integer.toString(keyCode) + "," + Integer.toString(repeatCount));
Intent intent;
if (keyCode == 24 && event.getRepeatCount() == 2) { // original : 133
FindActivity.this.finish();
intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
return false;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == 24) {
event.startTracking();
Log.d("Main Java Log", "keyevent count : " + Integer.toString(event.getRepeatCount()));
}
return super.onKeyDown(keyCode, event);
}
我首先尝试了 if (keyCode == 24 && RepeatCount == 2) 但它不起作用,所以我做了 onKeyDown 跟踪 24 的下来并 make if (keyCode == 24 && event.getRepeatCount() == 2)但同样它也不起作用。 另外,每当我单击 24 键一次或两次时, getReapeatCount() 都会返回 0。 我搜索了使用 onKeyMultiple 或使用多个物理 keyevent 的示例,但找不到任何示例。 请给我一些建议或更正我的代码。 真的提前致谢。
最佳答案
这有帮助吗:
private boolean clickedTwice = false;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == 24) {
if(clickedTwice){
//key was clicked twice
clickedTwice = false;
event.startTracking();
}else{
//key was clicked the first time
clickedTwice = true;
}
return true;
}
return super.onKeyDown(keyCode, event);
}
关于java - Android 中如何检测物理按键的双击?(onKeyMultiple),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62000318/