Android中经常有自定义的点击事件,但大多数都只是单击或者长按事件.
本篇文章对于双击事件提供两种方法:


老土的方法(自己以前的写法)

long time_first = 0;long time_second = 0;long limit; //双击要求的间隔public void doubleClick() {    if (time_first != 0) {        //已双击        time_second = System.currentTimeMillis();        long time = (time_second - time_first) / 1000;        if (time <= limit) {            //事件触发            //TODO        } else {            //时间过长,重新设定为单击事件            time_first = time_second;        }    } else {        //单击事件,记录时间        time_first = System.currentTimeMillis();    }}  

大致想法也就是判断第一次和第二次的点击事件时间, 然后计算是否符合双击的要求, balabala的. 乍一看是没问题 , 可是遇到有些丧心病狂的需求(三击, 四击事件)的时候, 抱歉 TAT 我怂了, 用下面的方法吧.......

有点厉害的写法(参照Android源码)

long[] mHints=new long[3];//数组长度决定点击事件的次数long limit;private void MultiClick(){    System.arraycopy(mHints, 1, mHints, 0, mHints.length-1);//相当于数组的逻辑左移   mHints[mHints.length-1]= SystemClock.uptimeMillis();//将数组最后一位设置为当前时钟   if (mHints[0]>=(SystemClock.uptimeMillis()-limit)) { //若0号元素距离系统末位元素的时间不到limit(设定的连击时间触发阈值)       //三次点击事件触发事件       //TODO      }}         

这种写法就可以实现多次事件的点击

更多相关文章

  1. Android(安卓)Studio快速添加Gson以及GsonFormat的使用
  2. Android(安卓)Studio 点击按钮跳转新界面
  3. Android新浪微博开发(四)主UI的完善
  4. android 基础控件(EditView、SeekBar等)的属性及使用方法
  5. PopWindow与ListView多选实现
  6. Android实现淘宝倒计时功能
  7. Android获取桌面启动图标的位置
  8. android 获取UTC时间和与.net时间戳的转换
  9. Android原生上下滚动控件ViewFlipper的点击事件

随机推荐

  1. SQlite字段类型升级
  2. android dialog小结
  3. Android四大组件完全解析(一)---Activity
  4. android studio升级方法
  5. Android TextView中的文字自动生成链接
  6. Android 开发环境配置
  7. 相对布局常用属性介绍(RelativeLayout)
  8. Android(安卓)TTS学习——TTS初体验
  9. Android(安卓)Message机制的灵活应用
  10. Android 学习笔记(十六):Widget-进度条