双击(多次点击)事件

package com.itheima.doubleclick;

import android.os.Bundle;
import android.os.SystemClock;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {
	long firstClickTime;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
	public void click(View view){
		if(firstClickTime>0){
			long sencondClickTime = SystemClock.uptimeMillis();
			long dtime = sencondClickTime - firstClickTime;
			if(dtime<500){
				Toast.makeText(this, "双击了", 0).show();
			}else{
				firstClickTime = 0;
			}
			return;
		}
		//cpu运行的事件  开机就开始运行,重新开启就清0重新计算
		//解决单击一次之后双击不灵的情况
		firstClickTime = SystemClock.uptimeMillis();
		new Thread(){
			public void run() {
				try {
					Thread.sleep(500);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				firstClickTime = 0;
			};
		}.start();
	}
}

多次点击事件

package com.itheima.doubleclick;

import android.os.Bundle;
import android.os.SystemClock;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
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);
	}
	long[] mHits = new long[3];
	//三击事件
	public void click(View view){
		//src 拷贝的源数组
		//srcPos 从源数组的那个位置开始拷贝.
		//dst 目标数组
		//dstPos 从目标数组的那个位子开始写数据
		//length 拷贝的元素的个数
	  System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
      mHits[mHits.length-1] = SystemClock.uptimeMillis();
      if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {
         Toast.makeText(this, "恭喜你,3次点击了。", 0).show();
      }
	}
}
时间: 2024-10-07 08:08:08

双击(多次点击)事件的相关文章

EditText 双击才能获取点击事件

在获取EditText点击事件的过程中,发现EditText setOnClickListener事件响应中,只有获取焦点的时候才会响应, 如当焦点在别的控件上时,只能先点击获取焦点,第二次点击才会响应,解决办法改用setOnTouchListener监听, android.view.View下的OnTouchListener接口是只要触摸(touch)状态改变,就会触发该事件. 代码如下: woman_SDloadText.setOnTouchListener(new View.OnTouch

双击、三击和多次点击事件

一.目标 1.实现双击点击事件 2.实现三击以及更多次点击事件 二.代码实现 第一种方法: 1.定义一个long类型的变量(取名firstClickTime),用于储存第一次点击的时间: 2.在点击事件中,通过if语句判断第一次点击时间(firstClickTime)是否大于零,如果成立则在if语句中再创建long类型的变量(取名secondClickTime),用于储存第二次点击时间,再通过if语句判断这两次点击的时间差是否小于500毫秒.如果成立则执行相应语句:若大于500毫秒,则将第一次点

20.双击三击事件

/** * 模拟双击事件 * @author Kevin * */ public class MainActivity extends Activity { private long firstClickTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } p

android实现双击事件暨多击事件详解

最近在多击事件上稍微研究了下,在此做简要分析,供大家吐槽参考 方法一: 将两次点击的时间间隔小于0.5s的默认为双击事件 <span style="font-family:SimSun;font-size:14px;">mBtn1.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getA

屏蔽用户双击按钮产生的后续点击事件重复发生问题

屏蔽web端双击鼠标产生问题 从上面两张图就可以看出,如果用户误操作双击"确认支付并出保险"按钮,则会出现如上图现象.如何消除此现象呢? 我想到的解决方法:在调用的click事件时,设置一个flag开关,flag类型为boolean型默认值为true的且为全局变量.flag为判断条件放入if语句中,当第一次点击触发事件时,设置flag为false并执行点击事件绑定方法.如此,当用户点击第二次时,flag为false,不执行点击事件绑定方法.这就有效避免了上图问题的发生.       v

[前端][自定义DOM事件]不使用setTimeout实现双击事件或n击事件

使用setTimeout实现双击事件 例如,这样: let div = document.getElementById("div"); doubleClick(div, function (event) { console.log('双击') }) function doubleClick(ele, fn) { // 省略参数合法性的判断 let event = new Event("doubleClick"); // 自定义双击事件(可以使用CustomEvent

WebView 实现JS效果和a标签的点击事件

目前很多android app都可以显示web页面的界面,嵌入式开发,这个界面一般都是WebView这个控件加载出来的,学习该控件可以为你的app开发提升扩展性. 先说下WebView的一些优点: 可以直接显示和渲染web页面,直接显示网页 webview可以直接用html文件(网络上或本地assets中)作布局 和JavaScript交互调用 网页标签的点击事件 效果:(网页顶部是JS效果滚动,4个模块可以实现点击事件,可看到信息提示) activity_main.xml <RelativeL

Android多次点击事件

android本次没有提供双击或者多次点击事件,需要我们自己实现. 思想:使用数组记录点击时的系统时间,如果当前点击事件发生后点击了3次并且当前的系统时间和第一次点击事件发生的时间的差值小于500则认为是连续点击的而且点击了3次. 使用数组很巧妙的控制了点击次数,因为数组默认初始值全部为0,每次点击都会为数组最后一个元素赋值,然后把数组所有元素左移一位,每移动一次第一次点击事件的那个值就左移一位了,如果左移3次了mHints[0]一定不为0,如果mHints[0]为0说明还没有点击3次,如果mH

很简单的点击事件

这里只写了几个点击事件,就单击,双击,两只手指同时放在屏幕上( 一般是放大缩小等事件,需要自行构建内容 ) var which; var isPress = 0; var main = document.getElementById('main'); //这边自己改自己的地址就行 main.ontouchstart = function (event) { event.preventDefault(); var e = window.event || event; if( isPress ==

fastclick.js --- 解决移动端点击事件300ms延时

Fast Click 是一个简单.易用的库,专为消除移动端浏览器从物理触摸到触发点击事件之间的300ms延时. 为什么会存在延迟呢? 从你触摸按钮到触发点击事件,移动端浏览器会等待接近300ms,原因是浏览器会等待以确定你是否执行双击事件 兼容性 Mobile Safari on iOS 3 and upwards Chrome on iOS 5 and upwards Chrome on Android (ICS) Opera Mobile 11.5 and upwards Android B