我们常常用的双击功能,比如:双击返回。
此篇文章,我们来实现双击很多击的功能。
1、双击(时间差法)
private long firstcliktime;
//System.currentTimeMillis()得到当前时间,long型
if(firstcliktime >0){
if(System.currentTimeMillis() - firstcliktime <= 500){
//双击成功,Toast
Toast.makeText(this,"dbClick!",Toast.LENGTH_SHORT).show();
}
}
firstcliktime = System.currentTimeMillis();
2、双击(计时器法)
private boolean b = true;
//开始b为true,第一次点击,b置为false,500毫秒后重新置为true
//当b为false时,执行操作
if(b) {
b=false;
//设置定时器,500毫秒后b重新置为true
new Timer().schedule(new TimerTask() {
@Override
public void run() {
b = true;
}
}, 500);
}else{
//双击成功,Toast
Toast.makeText(this,"dbClick!",Toast.LENGTH_SHORT).show();
}
3、双击、多击(谷歌大法)
此方法有点难以理解,不过不要紧,因为这代码只有谷歌大神才能写出来,我们只是看看。
long[] mHits = new long[2];// 数组长度表示要点击的次数
System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
mHits[mHits.length - 1] = SystemClock.uptimeMillis();// 开机后开始计算的时间
if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) {
//点击成功,Toast
Toast.makeText(this, "是男人!!!", Toast.LENGTH_SHORT).show();
}