Android连续点击多次事件的实现
有时候我们需要实现这样的场景,类似进入开发者模式,即多次点击后执行操作。
首先我们先看一个方法:
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次才有效
@Overridepublic 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 连续点击屏幕(次数可定,事件可定)后进行操作
final static int ClICK_COUNTS = 5;//设置点击次数final static long CLICK_DURATION = 3 * 1000;//设置规定有效时间long ...
- android 点击,触摸事件
setontouchlistener为什么会出现override performclick警告 由源码可以看出,只要是使用了view.setOnClickListener()方法设置监听器,就会自动触 ...
- android 点击外部接收事件,Android Dialog外部点击事件
简介 一.设置是否点击dialog外部取消dialog 这个直接设置setCanceledOnTouchOutside方法即可. 二.点击外部自己监听事件 有时候我们不仅仅是需要设置点击外部取消,而是 ...
- 如何禁止用户连续点击一个按钮事件详细JS
<input type="button" id="submit" value="提交"> <script> $(do ...
- 连续点击8次android版本,Android屡次点击事件
android本次没有提供双击或者屡次点击事件,须要咱们本身实现.android 思想:使用数组记录点击时的系统时间,若是当前点击事件发生后点击了3次而且当前的系统时间和第一次点击事件发生的时间的差值 ...
- Android 防止同时按下两个按钮触发两个事件,连续点击事件
不知道大家在写程序的时候有没有遇到这种问题,解决的办法很简单. 1. 在这两个按钮 或其他控件 的父控件上加上 android:splitMotionEvents="false&qu ...
- Android中点击事件的四种写法
Android中点击事件的四种写法 使用内部类实现点击事件 使用匿名内部类实现点击事件 让MainActivity实现View.OnClickListener接口 通过布局文件中控件的属性 第一种方法 ...
- android root点击事件,在Android中使用InputManagerService进行事件传递
在Android中使用InputManagerService进行事件传递 发布时间:2020-11-25 16:47:31 来源:亿速云 阅读:67 作者:Leah 在Android中使用InputM ...
- 【Android】技术调研:用代码模拟屏幕点击、触摸事件
在Android中,有些场景需要使用代码来模拟人的操作,比如微信自动抢红包.UI测试等都需要模拟实现点击事件(Click).触摸事件(Touch).键盘事件(KeyBoard)等.那么,有没有现成的方 ...
最新文章
- python gil 解除_python GIL的解读
- u-charts 曲线图中间有部分没数据,导致点和点无法连成线的问题解决
- 合成复用原则java实例_第7节 合成复用原则
- android 调试
- axure怎么转换成php,墨刀和axure的区别是什么?
- centos7 yum安装maven_Centos7.3安装Maven私服nexus-3.x
- datatable中某一列最小值_获取DataTable 某一列所有值
- linux中常用的shell脚本,Linux常用shell脚本
- 计算机d盘的权限怎么解决,D盘没权限,不能删除更改任何文件解决方法
- Lucene.net试用
- python三种基本结构类型_Python入门_浅谈数据结构的4种基本类型
- 成功解决:loadrunner提示计算机上缺少vc2005_sp1_with_atl_fix_redist
- 笔记本电脑无线Wifi热点设置工具
- 某某桥的检测和加固设计
- 最新软件设计师知识点分析(思维导图)
- STM 32简单编程实例
- HTML中图片的蒙胧效果!
- 安卓基于Frida HOOK传感器 实现虚拟运动跑步
- JetSon-nano板卡_从sd卡烧录到tensorRT部署_一条龙
- 商圈热点事件:极智嘉拟科创板上市、小鹅通D轮融资……
热门文章
- javascript的事件冒泡,阻止事件冒泡和事件委托, 事件委托是事件冒泡的一个应用。...
- rails log_level
- Activity 模版样式简介
- storm-hbase jar包中的bolt节点源码解析
- HTML5 多图片上传(前端+后台详解)
- python 常量 模块_Python字符串模块的有用常量
- 中信银行MySQL面试_【深圳中信银行信用卡中心面试】面试题_面试经验_面试流程-看准网...
- 复地邮箱服务器地址,打印服务器设置方法
- manchi翻译中文 mi_求这一段意大利文歌词中文翻译(Mi Manchi)
- oracle 性能优化 常用,Oracle數據庫常用性能優化