双击(多次点击)事件

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();
      }
	}
}

多次点击原理:

    双击(多次点击)事件

你可能感兴趣的:(双击(多次点击)事件)