Android开发之实现多次点击事件

本文介绍了在Android中如何实现多次点击事件,包括两种实现方式:一是通过记录两次点击的时间间隔来判断;二是利用Google API提供的算法。同时,文章讨论了System.currentTimeMillis()和SystemClock.uptimeMillis()的区别,强调后者更适合用于间隔时间测量,因为它是单调递增的,并不受系统休眠影响。
摘要由CSDN通过智能技术生成

在Android中给我们提供了单次点击事件。但并没有给我们提供双击,或者实现在一定时间内的多次事件。所以需要我们自己在单机监听上进行修改实现。

有如下两种实现方式:

1、定义一个存贮上一个第一次点击的变量,如果两次时间间隔小于500毫秒,则认为是双击时间。

     实现如下:

package com.andy.doubleclick;

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

/**
 * @author Zhang,Tianyou
 * @version 2014年12月02日 上午10:51:56
 */

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	private long startClickTime;

	public void click(View view) {
		long nextClickTime = SystemClock.uptimeMillis();
		if (startClickTime <= 0) {
			startClickTime = SystemClock.uptimeMillis();
			return ;
		}else {
			if (nextClickTime - startClickTime < 500) {
				Toast.makeText(this, "被双击了", Toast.LENGTH_SHORT).show();
				startClickTime = 0L;
			} else {
				startClickTime = SystemClock.uptimeMillis();
			}

		}
		
	}

}

这种方式有个缺陷,如果要实现多次点击,那么就需要定义存贮多个事件点的变量,很显然不适合多次点击的处理。


2、使用Google提供的api中采用的算法。

      能够实现n次点击事件,我们需要定义一个n长度的数组,每点击一次将数组里的内容按序号整体向左移动一格,然后给n-1出即数组的最后添加当前的时间,如果0个位置的时间大于当前时间减去500毫秒的话,那么证明在500毫秒内点击了n次。


     实现如下:

   


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值