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 に答える