实际上,这个问题延伸
this one.
我想计算我从耳机按下的按钮的数量。
if(action == KeyEvent.ACTION_DOWN)
{
Toast.makeText(context, "Pressed 1 time", Toast.LENGTH_SHORT).show();
}
if(action == KeyEvent.ACTION_MULTIPLE)
{
k = event.getRepeatCount();
if(k == 2)
Toast.makeText(context, "Pressed 2 times", Toast.LENGTH_SHORT).show();
if(k == 3)
Toast.makeText(context, "Pressed 3 times", Toast.LENGTH_SHORT).show();
if(k>=4)
{
String a = Integer.toString(k);
Toast.makeText(context, "Pressed " + a + " times.", Toast.LENGTH_SHORT).show();
}
}
但是当我按下按钮时,我得到 Toast“按了 1 次”。我总是明白,系统永远不会进入其他 if
。
我该如何解决这个问题?
谢谢
添加 还是解决不了这个问题这就是我所做的:
if(action == KeyEvent.ACTION_DOWN)
{
k++;
try
{
wait(1000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
if(k == 1)
Toast.makeText(context, "Pressed 1 time", Toast.LENGTH_SHORT).show();
if(k == 2)
Toast.makeText(context, "Pressed 2 times", Toast.LENGTH_SHORT).show();
if(k == 3)
Toast.makeText(context, "Pressed 3 times", Toast.LENGTH_SHORT).show();
if(k>=4)
{
String a = Integer.toString(k);
Toast.makeText(context, "Pressed " + a + " times.", Toast.LENGTH_SHORT).show();
}
k = 0;
abortBroadcast();
最佳答案
“连续发生多个重复按键事件”是ACTION_MULTIPLE的定义,您只按了一个按钮。
if(action == KeyEvent.ACTION_DOWN)
{
k++;
Toast.makeText(context, "Pressed " + Integer.toString(k) + " time(s).", Toast.LENGTH_SHORT).show();
}
编辑:
哦,我看到您想双击下一首轨道或三次单击返回。我建议实现一个线程。在 KeyEvent.ACTION_DOWN 中计算按键次数。在您的线程中,假设调用 wait(500) 并检查您的按钮被按下的次数并采取相应措施,并将计数器设置回 0。
关于android - 计算按下按钮的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10933672/