03多次点击事件的实现

多次点击


一、彩蛋
1、快速点击3次

2、再次点击一下
二、查看系统如何实现多次点击
导入Settings

1、Android version

2、CTRL+H,搜Android version

3、搜索到的strings.xml

4、再次CTRL+H,搜fireware_version

5、源码多次点击实现
long[] mHits = new long[3]; 
......

public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {

if (preference.getKey().equals(KEY_FIRMWARE_VERSION)) {

System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);

mHits[mHits.length-1] = SystemClock.uptimeMillis();

if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.setClassName("android",

com.android.internal.app.PlatLogoActivity.class.getName());

try {

startActivity(intent);

} catch (Exception e) {

Log.e(LOG_TAG, "Unable to start activity " + intent.toString());

}

}

三、系统3击事件源码分析:

四、案例

package cn.zengfansheng.threeclick;

import android.app.Activity;

import android.os.Bundle;

import android.os.SystemClock;

import android.view.View;

import android.widget.Toast;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

// 1、存时间的数组

long[] mHits = new long[3];

public void threeClick(View view) {

// 2、数组拷贝,将mHits的值位置1开始拷贝的mHits从0开始,拷贝mHits.length-1个

// 那么最后一个位置留下了

System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);

// 3、mHits最后一个位置赋值为当前系统时间

mHits[mHits.length - 1] = SystemClock.uptimeMillis();

//4、如果mHits第一个元素

if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) {

Toast.makeText(getApplicationContext(), mHits.length + "击事件~~~",0).show();

}

}

/**

* 我的四击事件

* @param view

*/

long[] myHits = new long[4];

public void myFourClick(View view) {

// 1、拷贝

System.arraycopy(myHits, 1, mHits, 0, myHits.length - 1);

// 2、赋值系统时间给最后一个元素

myHits[myHits.length - 1] = SystemClock.currentThreadTimeMillis();

// 判断

if (myHits[0] >= (myHits[myHits.length - 1] - 600)) {

Toast.makeText(getApplicationContext(), myHits.length + "击事件~~~", 0)

.show();

}

}

}

来自为知笔记(Wiz)

时间: 2024-10-03 18:07:54

03多次点击事件的实现的相关文章

【lushengduan】03、点击事件的四种实现方式

好吧,首先我们来解释一下什么“点击事件”,所谓“点击事件”就是当我们点击(注意是单击)手机屏幕时,系统做出相应的响应:举个例子哈,你去朋友家里,要告诉你的朋友你到了,你是不是要敲一敲门,然后你朋友听到了就来给你开门了,这个就和我们点击屏幕上的Button很类似,点击的操作相当于敲门,至于“朋友听到”和“开门”这两个行为动作,就是我们今天要探讨的内容了. 手机没有耳朵,不可能“听到”我们点击了屏幕,因此,需要给Button绑定一个监听器,每当Button被点击了,就去执行某些特定的操作,常用的点击

微信小程序学习总结(2)------- 之for循环,绑定点击事件

最近公司有小程序的项目,本人有幸参与其中,一个项目做下来感觉受益匪浅,与大家做下分享,欢迎沟通交流互相学习. 先说一下此次项目本人体会较深的几个关键点:微信地图.用户静默授权.用户弹窗授权.微信充值等等. 言归正传,今天分享我遇到的关于wx:for循环绑定数据的一个tips:  1. 想必大家的都知道wx:for,如下就不用我啰嗦了: <view class="myNew" wx:for="{{list}}">{{item.title}}<view

JS如何将拖拉事件与点击事件分离?

帖子:http://bbs.csdn.net/topics/390785395?page=1#post-397369340 如何将拖拉事件跟点击事件分离? 需要做到:拖拉时不触动点击事件 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> js拖拽组件1 </title> <script type="text/javascript" src=&qu

js 基础篇(点击事件轮播图的实现)

轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首先,我们可以在body中添加一个div并且将宽度设置成百分比(自适应页面),比例具体是相对谁的百分比的话按需求来做,在这里不多说.将图片放入到div 中. 其次,样式部分将img标签全部设置成absolute:以方便定位 最后,js部分说说逻辑,定义两个空数组,第一个数组用来保存初始的显示在页面的图

JS怎样将拖拉事件与点击事件分离?

帖子:http://bbs.csdn.net/topics/390785395?page=1#post-397369340 怎样将拖拉事件跟点击事件分离? 须要做到:拖拉时不触动点击事件 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> js拖拽组件1 </title> <script type="text/javascript" src=&qu

struct和class的区别 观察者模式 https连接 点击button收到点击事件,中间发生了什么

问题: 4道过滤菜鸟的iOS面试题 网上已经有很多针对各种知识点的面试题,面试时有些人未必真正理解也能通过背题看上去很懂.我自己总结了4道面试题,好快速的判断这个人是否是一个合格的工程师,欢迎大家点评. 1.struct和class的区别 在面试之前你觉得所有的计算机专业的学生都应该能答的上来,事实是我面的人里有超过三分一没有答上来. 有时我还会顺便问下swfit里的array是什么类型,在大量复制时会不会有性能问题. 2.介绍一下观察者模式 也许有些人已经觉得设计模式有些过时,没有整本读过.就

APT案例之点击事件

目录介绍 01.创建项目步骤 1.1 项目搭建 1.2 项目功能 02.自定义注解 03.创建Processor 04.compiler配置文件 05.编译jar 06.如何使用 07.编译生成代码 08.部分源码说明 8.1 Process类-process方法 8.2 OnceProxyInfo代理类 8.3 OnceMethod类 好消息 博客笔记大汇总[16年3月到至今],包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当

移动端点击事件全攻略,有你知道与不知道的各种坑

看标题的时候你可能会想,点击事件有什么好说的,还写一篇攻略?哈哈,如果你这么想,只能说明你too young to simple. 接触过移动端开发的同学可能都会面临点击事件的第一个问题:click事件的300ms延迟响应.不能立即响应给体验造成了很大的困扰,因此解决这个问题就成为了必然. 这个问题的解决方案就是: zepto.js的tap事件.tap事件可以理解为在移动端的click事件,而zepto.js因为几乎完全复制jQuery的api,因此常常被用在h5的开发上用来取代jquery.

【转】Android - Button(按钮)的响应点击事件的4种写法

原文网址:http://www.yrom.net/blog/2011/12/12/android-4-onclicklistener-of-button/ Button控件setOnclickListener(View.OnClickListener listener)来接收一个点击事件的监听器 自定义一个点击事件监听器类让其实现View.OnClickListener的onClick(View v)方法 1 2 3 4 5 class MyOnClickListener implements