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(); } } }
原文:http://my.oschina.net/u/2356176/blog/423588