java - Android 中如何检测物理按键的双击?(onKeyMultiple)

标签 java android

我正在使用物理按键制作 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/

相关文章:

java - SWT MessageBox 不显示正确的图标

Java:为什么我的字符串会通过 UDP 损坏?

android - 如何在android中播放声音

java - 是否有 Java 7 到 Java 6 的转换器?

java - addToBackStack(null) 中的 null 的目的是什么?

java - 使用 Java 向 MongoDB 中的数组添加值

java - 对我的 Java 项目进行 Coverity 静态分析时出现 "intermediate directory contains no translation units"错误

android - 在 Google Play 商店之外分发 Android 应用程序

java - 如何改变图像的亮度

安卓 : Help in RadioButton Toast