实际上,这个问题extends
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
。
我该如何解决这个问题?
由于
ADDITION 仍然无法解决这个问题。这是我的所作所为:
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();
答案 0 :(得分:3)
“连续发生多个重复键事件”是ACTION_MULTIPLE的定义,您只需按一个按钮。
if(action == KeyEvent.ACTION_DOWN)
{
k++;
Toast.makeText(context, "Pressed " + Integer.toString(k) + " time(s).", Toast.LENGTH_SHORT).show();
}
编辑:
哦,我发现你希望下一次跟踪双击或三次点击。我建议实现一个线程。在您的KeyEvent.ACTION_DOWN计数键按下。在你的线程中,假设调用一个等待(500)并检查你的按钮按下了多少次并相应地采取行动并将计数器设置为0。