android - 如何创建双击、三击和四击
问题描述
我试图找出点击是双倍、三倍还是四倍,这是我的尝试:
代码
//Global Variables
private int numberOfTaps;
private long timeMillisOfFirstClick;
private int typeOfClick;
private int interval;
//Inside On Click Listener
typeOfClick = (int) SavedData.getValue(requireActivity(), "chipSelected") == R.id.chip_double_click ? 2 : (int) SavedData.getValue(requireActivity(), "chipSelected") == R.id.chip_triple_click ? 3 : 4;
interval = (int) SavedData.getValue(requireActivity(), "chipSelected") == R.id.chip_double_click ? 750 : (int) SavedData.getValue(requireActivity(), "chipSelected") == R.id.chip_triple_click ? 1000 : 1250;
if (numberOfTaps >= typeOfClick)
numberOfTaps = 1;
else
numberOfTaps++;
if (numberOfTaps == 1)
timeMillisOfFirstClick = System.currentTimeMillis();
if (numberOfTaps == typeOfClick && (System.currentTimeMillis() - timeMillisOfFirstClick) <= interval) {
Log.w("ABC", String.valueOf(typeOfClick));
}
上面的代码有时运行良好,有时运行不佳,我错过了什么吗?
解决方案
Alhamdulillah,它现在正在工作
typeOfClick = (int) SavedData.getValue(requireActivity(), "chipSelected") == R.id.chip_double_click ? 2 : (int) SavedData.getValue(requireActivity(), "chipSelected") == R.id.chip_triple_click ? 3 : 4;
interval = (int) SavedData.getValue(requireActivity(), "chipSelected") == R.id.chip_double_click ? 750 : (int) SavedData.getValue(requireActivity(), "chipSelected") == R.id.chip_triple_click ? 1000 : 1250;
if (timeMillisOfFirstClick > 0 && (System.currentTimeMillis() - timeMillisOfFirstClick) > interval)
numberOfTaps = 1;
else
numberOfTaps++;
if (numberOfTaps == 1)
timeMillisOfFirstClick = System.currentTimeMillis();
if (numberOfTaps == typeOfClick && (System.currentTimeMillis() - timeMillisOfFirstClick) <= interval)
Log.w("ABC", String.valueOf(typeOfClick));
推荐阅读
- scala - Scala 类型类模式与模式匹配或重载
- sql - 使用默认约束值更新字段
- apache-spark-sql - Spark SQL from_json 文档
- c# - 如何在 XtraInputBox 中仅接受数值以及如何检查单击了哪个按钮?
- webusb - Google Chrome WebUSB API requestDevices() 看不到条形码扫描仪 Voyager 1450g
- c++ - 结构异常的 C++ 清除向量
- swift - 如何在swift中逐步更改UILabel文本
- python - 提取 2 个字符串之间的字符串,如果未找到第 2 个字符串,则提取到末尾
- byobu - 保存 byobu-ctrl -a 状态
- r - Stan多项式回归参数估计模型回顾