Android连续点击事件处理

Android连续点击事件处理

核心方法:System.arraycopy():将一个数组的部分复制给另一个数组

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)参数说明:

Object src 源数组
int srcPos 源数组复制起始位置
Object dest 目标数组
int destPos 目标数组起始位置
int length 复制长度

代码实现:

/**
 * 连续点击相关设置
 */
private static final int CLICK_COUNT = 3; //连续点击的次数
private static long DURATION = 1500; // 完成连续点击持续的时间
private long[] mClickArray = new long[CLICK_COUNT]; // 保存点击时间的数组

 /**
  * 执行连续点击事件
  */
public void executeContinuousClickEvent(){
    
    
    
        // 每次点击让数组前进一位
        System.arraycopy(mClickArray, 1, mClickArray, 0, mClickArray.length - 1);
    
        // 为数组的最后一个位置赋值(SystemClock.uptimeMillis()表示系统开机到现在的时间总数,单位是ms)
        mClickArray[mClickArray.length - 1] = SystemClock.uptimeMillis();
    
        /** 当用户完成3次点击时,判断一下完成三次点击使用的时间是否在DURATION范围之内
                     click1   click2        click3
                        ↓      ↓              ↓
          -------|------------------------------|----------> 时间轴(SystemClock.uptimeMills())
                 |<—————————— DURATION ————————>|
        */
        if(mClickArray[0] >= SystemClock.uptimeMillis() - DURATION){
    
    
            // 完成连续点击事件后初始化数组
            mClickArray = new long[CLICK_COUNT];
            XToast.showError("连续点击");
        }
    }

猜你喜欢

转载自blog.csdn.net/C_biubiubiu/article/details/111164932