在平常开发中我们经常会有对按钮的双击事件处理,如何实现双击事件,Android系统对Button控件没有写入相应的接口。根据想法就是两次点击时间间隔很短的(比如500毫秒)的连续点击就可以看作双击事件。我们可以分别记录两次点击的系统时间,如果时间差小于500ms的话就可以视为双击事件。
//第一次事件
private long firstTime=0;
public void bt1_click(View v){
//由于Android系统中没有双击事件,
//因此采用两次点击的时间来作为比较参数。若时间小于规定时间则为双击事件
if(firstTime==0){
firstTime=System.currentTimeMillis();
}
else{
long secondTime=System.currentTimeMillis();
long disTime=secondTime-firstTime;
if(disTime<=500){
Log.i(TAG, "按钮1双击");
}else{
firstTime=secondTime;
}
}
}
这只是一个简单的实现,如果要实现三击事件,四击事件呢?其实Android系统中实现了一个三击的事件。进入Android的setting,然后进入About Phone,再连续三击Android version,4.1的系统会出现
进入Android系统Setting源码分析中可以看到代码
long[] mHits = new long[3];
public void onClick(View v){
System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
mHits[mHits.length