1. 双击事件的实现
publicvoid doubleClick(View view) {
if (firstClickTime > 0)// 点击过一次
{
long secondClickTime =System.currentTimeMillis();
long dTime =secondClickTime - firstClickTime;
Log.i("",dTime+"");
if (dTime < 500) {
Log.i("","参数双击事件了");
Toast.makeText(this,System.currentTimeMillis()+"", 1).show();
Toast.makeText(this,"爽极了", 1).show();
firstClickTime = 0;
}
} else {
// 记录第一次点击的系统时间
firstClickTime =System.currentTimeMillis();
new Thread() {
public void run() {
try {
Thread.sleep(500);
} catch(InterruptedException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
firstClickTime= 0;// 如果点击了第一次500后还没点击第二次,自动清零,下一次如果是有效的双击必然生效
// 则第一次点击失效
};
}.start();
}
}
2. 多击事件的实现
long[] mHits = new long[3];
//三击事件
publicvoid threeClick(View view){
// src 拷贝内容的原数组
// srcPos 从源数组的那个位置开始拷贝内容
// dst 拷贝的目标数组
// dstPos 从目标数组里面从那个位置开始存放数据
// length 要拷几个元素
System.arraycopy(mHits, 1, mHits, 0,mHits.length-1); //相当于数组向左移动一个位置,最后为空,默认补零
//SystemClock.uptimeMillis()系统开机的时间
mHits[mHits.length-1] =SystemClock.uptimeMillis();数组的最后一个值等于系统当前毫秒值 System.currentTimeMillis();从1970年到现在的时间
if (mHits[0] >=(SystemClock.uptimeMillis()-500)) {
Toast.makeText(this, "三击", 0).show();
}
}