Button或其它控件的双击或者多击的操作



long[] mHits = new long[3];

public void treeClick(View v){

/**

 *  arraycopy里面5个参数详解

*  1.src the source array to copy the content.   拷贝的原数组
     2.srcPos the starting index of the content in src.  是从源数组那个位置开始拷贝
     3.dst the destination array to copy the data into.  拷贝的目标数组
     4.dstPos the starting index for the copied content in dst.  是从目标数组那个位置开始去写
     5.length the number of elements to be copied.   拷贝的长度
*/
//拷贝数组操作
System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
        mHits[mHits.length-1] = SystemClock.uptimeMillis();  // 将离开机的时间设置给数组的第二个元素,离开机时间 :毫秒值,手机休眠不算
        if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {  // 判断是否多击操作
        System.out.println("多击了...");
        }

}



原理图:long数组mHits 里面的值变化。

图可能看起来有点难理解,下面再解释一下。

 第一击:即第一次点击的时候,记录第一次点击的时间比如说700ms,赋值到mHits[2]中保存起来

第二击:把mHits 数组里面的值更新一下,即mHits[1]保存第一次点击的时间(700ms),mHits[2]保存第二次点击的时间(900)。

第三击:同第二击,把mHits 数组里面的值再次更新。判断如果mHits[0]里面的值(第一次点击的时间)大于现在的时间减去500ms,代表这个控件在500ms中点击了3次,即三连击,多击操作。

我语文不好,解释的尽力了,望亲们可以理解。或者提一些建议3Q、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值