Android开发实现控件双击事件的监听接口封装类

作者:zuo_er_lyf 时间:2023-02-15 00:56:18 

写项目时,要求仿微信朋友圈,双击顶栏置顶,于是封装了双击回调接口,方便大家拿来就用


/**
* Created by Administrator on 2018/4/24.
* 双击
*/

public class OnDoubleClickListener implements View.OnTouchListener{

private int count = 0;//点击次数
 private long firstClick = 0;//第一次点击时间
 private long secondClick = 0;//第二次点击时间
 /**
  * 两次点击时间间隔,单位毫秒
  */
 private final int totalTime = 1000;
 /**
  * 自定义回调接口
  */
 private DoubleClickCallback mCallback;

public interface DoubleClickCallback {
   void onDoubleClick();
 }
 public OnDoubleClickListener(DoubleClickCallback callback) {
   super();
   this.mCallback = callback;
 }

/**
  * 触摸事件处理
  * @param v
  * @param event
  * @return
  */
 @Override
 public boolean onTouch(View v, MotionEvent event) {
   if (MotionEvent.ACTION_DOWN == event.getAction()) {//按下
     count++;
     if (1 == count) {
       firstClick = System.currentTimeMillis();//记录第一次点击时间
     } else if (2 == count) {
       secondClick = System.currentTimeMillis();//记录第二次点击时间
       if (secondClick - firstClick < totalTime) {//判断二次点击时间间隔是否在设定的间隔时间之内
         if (mCallback != null) {
           mCallback.onDoubleClick();
         }
         count = 0;
         firstClick = 0;
       } else {
         firstClick = secondClick;
         count = 1;
       }
       secondClick = 0;
     }
   }
   return true;
 }
}

具体应用关键代码:


/**
  * 顶栏双击,置顶
  */
 private void titleDoubleOnClick(){
   titleLayout.setOnTouchListener(new OnDoubleClickListener(new OnDoubleClickListener.DoubleClickCallback() {
     @Override
     public void onDoubleClick() {
       listView_neighbour.setSelection(0);//处理双击事件
     }
   }));
 }

本文为大家提供了Android开发实现控件双击事件的监听接口封装类,大家可以拿来就用,更多关于Android双击事件技巧请查看下面的相关链接

来源:https://blog.csdn.net/zuo_er_lyf/article/details/80068006

标签:Android,双击事件
0
投稿

猜你喜欢

  • flutter 路由机制的实现

    2021-11-18 08:28:46
  • C#写入XML文档

    2022-03-21 18:08:33
  • 浅谈springboot之JoinPoint的getSignature方法

    2022-12-25 11:23:20
  • Android卫星菜单效果的实现方法

    2023-10-18 12:41:34
  • Android实现倒计时的方案梳理

    2022-04-29 00:48:31
  • Android极光推送处理message遇到的坑解决

    2022-08-08 00:49:32
  • Android 游戏引擎libgdx 资源加载进度百分比显示案例分析

    2023-05-12 12:18:46
  • C#/VB.NET实现PPT或PPTX转换为图像功能

    2023-01-25 05:14:37
  • Android 使用压缩纹理的方案

    2023-09-26 12:25:23
  • Java编程调用微信接口实现图文信息推送功能

    2023-11-25 07:20:47
  • C#中LINQ多条件JOIN时为什么可以使用匿名类

    2023-01-24 15:38:21
  • Android Handler 机制实现原理分析

    2022-01-14 23:46:49
  • java实现查找替换功能

    2021-12-15 00:46:50
  • 如何在mapper文件中使用in("str1","str2")

    2023-07-10 10:40:51
  • C#实现的三种模拟自动登录和提交POST信息的方法

    2022-05-28 01:49:32
  • Android中仿IOS提示框的实现方法

    2023-01-06 15:47:07
  • Android Webview滑进出屏幕闪烁的解决方法

    2021-11-30 11:57:33
  • Java 回调函数详解及使用

    2023-11-03 02:32:35
  • 基于SpringMVC的全局异常处理器介绍

    2023-11-23 20:55:58
  • Java编程中的4种代码块详解

    2022-01-04 03:10:20
  • asp之家 软件编程 m.aspxhome.com