Android连续点击多次事件的实现

Android连续点击多次事件的实现,第1张

概述有时候我们需要实现这样的场景,类似进入开发者模式,即多次点击后执行 *** 作。 首先我们先看一个方法:System提供的一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。public static voidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength);src:

有时候我们需要实现这样的场景,类似进入开发者模式,即多次点击后执行 *** 作。

 

首先我们先看一个方法:

System提供的一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。

public static voID arraycopy(Object src,int srcPos,Object dest,int destPos,int length);

src:源数组; 
srcPos:源数组要复制的起始位置; 
dest:目的数组; 
destPos:目的数组放置的起始位置; 
length:复制的长度。 
注意:src and dest都必须是同类型或者可以进行转换类型的数组.

final static int COUNTS = 4;// 点击次数final static long DURATION = 1000;// 规定有效时间long[] mHits = new long[COUNTS];

首先我们定义次数,规定的有效时间,还有对应的数组,即我们要在一秒钟内点击4次才有效

@OverrIDe    public voID onClick(VIEw v) {        continuousClick(COUNTS, DURATION);    }    private voID continuousClick(int count, long time) {        //每次点击时,数组向前移动一位        System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);        //为数组最后一位赋值        mHits[mHits.length - 1] = SystemClock.uptimeMillis();        if (mHits[0] >= (SystemClock.uptimeMillis() - DURATION)) {            mHits = new long[COUNTS];//重新初始化数组            Toast.makeText(this, "连续点击了4次", Toast.LENGTH_LONG).show();        }    }

  

思路:首先我们点击的时候都将数组向左移动一位,将时间赋值给最后一位,从上面的代码中我们可以看出当我们点击了四次,那么最后一位就已经被移到了第一位,然后我们比较时间:

mHits[0] >= (SystemClock.uptimeMillis() - DURATION)

如果是在我们规定的时间内,那么就生效,执行我们所要的 *** 作。

 

SystemClock.uptimeMillis():手机开机到现在的时间。

注意:执行 *** 作后需要从新初始化数组:mHits = new long[COUNTS];否则点击第六次第七次的时候也会触发事件

参考于:https://www.cnblogs.com/tangZH/p/9832171.html

总结

以上是内存溢出为你收集整理的Android连续点击多次事件的实现全部内容,希望文章能够帮你解决Android连续点击多次事件的实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存