根据点击的时间间隔来判断是否是多次点击事件,谷歌的做法是,创建了一个数组来存储每一次点击的时间,以三次点击为例,每点击一次保存一次时间,数组更新一次(数组左移),最后通过比较最后一次点击事件的时间和第一次点击事件的时间的插值小于500ms来断定是否是连续点击事件
package com.ldw.doubleClick;
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
private long firstClickTime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//模拟双击事件
public void click2(View v){
//之前点过一次
if(firstClickTime > 0){
//两次点击的时间间隔小于500毫秒
if(System.currentTimeMillis() - firstClickTime < 500){
Toast.makeText(this, "双击事件", Toast.LENGTH_SHORT).show();
}
}
//第一次点击的时间
firstClickTime = System.currentTimeMillis();
}
// 数组长度表示要点击的次数。可以随意设计
long[] mHits = new long[3];
public void click3(View v){
//arraycopy是一个数组拷贝函数
System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
mHits[mHits.length - 1] = SystemClock.uptimeMillis();// 开机后开始计算的时间
if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) {
Toast.makeText(this, "三击事件", Toast.LENGTH_SHORT).show();
}
}
}