Android(安卓)多次点击事件的触发方法
16lz
2021-01-26
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 }}
这种写法就可以实现多次事件的点击
更多相关文章
- Android(安卓)Studio快速添加Gson以及GsonFormat的使用
- Android(安卓)Studio 点击按钮跳转新界面
- Android新浪微博开发(四)主UI的完善
- android 基础控件(EditView、SeekBar等)的属性及使用方法
- PopWindow与ListView多选实现
- Android实现淘宝倒计时功能
- Android获取桌面启动图标的位置
- android 获取UTC时间和与.net时间戳的转换
- Android原生上下滚动控件ViewFlipper的点击事件