1

我想在点击 5 次时触发一个意图。问题是当我点击 3 次并暂停一段时间然后再次点击 2 次时,意图被触发......

我只有在连续点击 5 次时才想要它..

static int i = 0;

public void onClick(View view) {
    i++;
    if (i == 5) {
        i = 0;
        Intent myIntent = new Intent(activity, loginActivity.class);
        activity.startActivity(myIntent);
    }
}

是否可以配置点击之间的最大延迟?

4

1 回答 1

1

您可以存储上次点击的时间戳,并在自上次点击后的延迟高于阈值时重置点击计数器:

private static final double MAX_CLICK_DELAY = 500; // 500ms
private double lastClickTime = 0;
private int i = 0;

public void onClick(View view) {
    double currentTime = System.currentTimeMillis();

    if(currentTime - lastClickTime > MAX_CLICK_DELAY) {
        i = 0;
    }

    lastClickTime = currentTime;

    i++;
    if (i == 5) {
        i = 0;
        Intent myIntent = new Intent(activity, loginActivity.class);
        activity.startActivity(myIntent);
    }
}
于 2012-11-15T09:40:22.910 回答