f252c4c4e01707232737de6ae60700565a909ec4.svn-base 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package eVVM.apk.helper;
  2. import android.os.Handler;
  3. import android.view.MotionEvent;
  4. import android.view.View;
  5. /**
  6. * Created by Android Studio.
  7. * User: zbb
  8. * Date: 2019/6/18
  9. * Describe: MyClickListener
  10. */
  11. public class MyClickListener implements View.OnTouchListener{
  12. private static int timeout=400;//双击间四百毫秒延时
  13. private int clickCount = 0;//记录连续点击次数
  14. private Handler handler;
  15. private MyClickCallBack myClickCallBack;
  16. public interface MyClickCallBack{
  17. void oneClick();//点击一次的回调
  18. void doubleClick();//连续点击两次的回调
  19. }
  20. public MyClickListener(MyClickCallBack myClickCallBack) {
  21. this.myClickCallBack = myClickCallBack;
  22. handler = new Handler();
  23. }
  24. @Override
  25. public boolean onTouch(View v, MotionEvent event) {
  26. if (event.getAction() == MotionEvent.ACTION_DOWN) {
  27. clickCount++;
  28. handler.postDelayed(new Runnable() {
  29. @Override
  30. public void run() {
  31. if (clickCount == 1) {
  32. myClickCallBack.oneClick();
  33. }else if(clickCount==2){
  34. myClickCallBack.doubleClick();
  35. }
  36. handler.removeCallbacksAndMessages(null);
  37. //清空handler延时,并防内存泄漏
  38. clickCount = 0;//计数清零
  39. }
  40. },timeout);//延时timeout后执行run方法中的代码
  41. }
  42. return false;//让点击事件继续传播,方便再给View添加其他事件监听
  43. }
  44. }