计数按下按钮数量

时间:2012-06-07 14:16:45

标签: android events button onclick keyevent

实际上,这个问题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();

1 个答案:

答案 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。