大家好,关于android双击事件 我相信大家都知道 API中是有个方法的,但是必须在Activity中在能使用。

对于到底用不用android 双击事件API各有各的看法。

在Activity中使用API

优点:省时省力,别人写的东西,直接用就行了,不担心有BUG

缺点:代码写在activity中 总感觉有些乱。

自己写个onDoubleClick方法

优点:自己写的东西,好控制,灵活性强,想放哪放哪。

缺点:需要消耗点时间,检查BUG之类的。

好了,最近我也遇到了需要处理双击事件的问题,我是这样处理的

我用了android的API 但是我也很好整理。

上代码吧,只有2个类 一个当然是Activity 另一个就是OnDoubleClick事件处理类

 1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.view.GestureDetector; 4 import android.view.MotionEvent; 5 import android.view.View.OnTouchListener; 6  7 /** 8  *  9  * <p>class instruction:内部界面 核心Activity</p>10  * create in 2011-12-2 @author Mercury11  */12 public class GameActivity extends  Activity {13     GameActivityHelper helper;14     private GestureDetector gd;15     @Override16     public void onCreate(Bundle savedInstanceState) {17         super.onCreate(savedInstanceState);18         helper=new GameActivityHelper(this);19         helper.init();20         setContentView(helper.getGameView());21         gd=new GestureDetector(this,new OnDoubleClick());22     }23      @Override24     public boolean onTouchEvent(MotionEvent event) {25         return gd.onTouchEvent(event);26     }27 }

 1 import android.view.GestureDetector; 2 import android.view.MotionEvent; 3  4 public class OnDoubleClick extends GestureDetector.SimpleOnGestureListener{ 5     @Override 6     public boolean onDoubleTap(MotionEvent e) { 7         //TODO 8         return false; 9     }10 //    @Override11 //    public boolean onDoubleTapEvent(MotionEvent e) {12 //        return super.onDoubleTapEvent(e);13 //    }14 }

代码也还算整洁。 API中对于双击有两种处理,

一种是双击后执行一次:onDoubleTap

一种是双击后执行两次:onDoubleTapEvent

这里我只需要双击后执行一次就行了,那里注释掉了

还有需要特别注意的是在自己的Activity中重写的父类Activity的方法

@Override
 public boolean onTouchEvent(MotionEvent event) {
  return gd.onTouchEvent(event);
 }
这个方法。我在网上看到有很多人在Activity中 实现implements OnTouchListener 后会要求你重写onTouch方法来实现双击。

这完全是误导人的做法,本人亲自试过,双击是无效的,普通的点击还是有效 我是在SDK1.6版本中试的

这是个细节希望大家多注意下。

这里的onTouchEvent 是Activity中的方法,而不是实现某个接口而来的,这就是为什么只能在Activity中处理双击事件的原因,

如果你需要用androidAPI处理双击事件就必须重写Activity中的onTouchEvent 方法 否则与GestureDetector中有关的方法都无效

onTouch 只要实现了OnTouchListener接口的View或者Activity都必须重写的方法,他是不能实现GestureDetector的一些功能的

转载于:https://www.cnblogs.com/tianjian/archive/2011/12/15/2289143.html

关于android 双击事件相关推荐

  1. android 拦截点击事件,Android双击事件拦截方法

    下文我们介绍两种双击事件拦截的方式 1.通过Android的事件分发机制进行拦截(dispatchTouchEvent) 话不多说,直接上代码: /** 判断是否是快速点击 */ private st ...

  2. android 双击事件

    局限于双击屏幕触发 1.MainActivity.java import com.xu.service.LearnGestureListener;import android.app.Activity ...

  3. android 触摸屏双击事件

    大家好,关于android双击事件 我相信大家都知道 API中是有个方法的,但是必须在Activity中在能使用. 对于到底用不用android 双击事件API各有各的看法. 在Activity中使用 ...

  4. android 按键双击,实现Android监控任意控件或按键双击事件方法

    为了实现对Android任意控件和按键进行双击事件的监听,所以写了一个可以在代码中任意移植的解决方法. 一.解决思路 为了实现双击事件的监听,首先需要一个线程来执行两次点击事件的判断,决定是否属于一次 ...

  5. Android实现双击事件的监听

    本文转自:Android实现双击事件的监听 Android实现view的双击事件监听,一般使用的场景,列表双击顶部回到第一条! 双击监听 /*** view双击监听事件*/ public class ...

  6. Android 通过onTouchEvent判断是否为双击事件

    通过onTouchEvent判断是否为双击事件,通过前面一次up 跟本次down之间的时间差,并且点击的点的坐标偏移来确定是否为双击事件DOUBLE_TAP_TIMEOUT. boolean isMo ...

  7. android 处理双击事件

    // 计算点击的次数 private int count = 0; // 第一次点击的时间 long型 private long firstClick = 0; // 最后一次点击的时间 privat ...

  8. Android实现双击事件的两种方式

    Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数. 实现代码如下: ...

  9. Android 取消返回键返回事件,返回桌面,再按一次退出程序,双击事件

    mainactivity返回桌面代码: activity下添加如下代码即可: @Override public void onBackPressed() {Intent home = new Inte ...

最新文章

  1. 微信公众号服务器数据情况,获取新榜微信公众号指数信息,并服务器上部署
  2. Python中的super()用法
  3. leetcode2. 两数相加--每天刷一道leetcode系列!
  4. C#: static关键字的作用
  5. python基础笔记(非系统/自用/参考小甲鱼的零基础入门学习python)下
  6. 第四章 Lua模块开发
  7. 微信公众平台开发(76) 获取用户基本信息
  8. oracle11g 安装在rhel5.0笔记
  9. win10任务栏图标存放路径
  10. python-按照相同的顺序打乱
  11. 2.1 LibCurl编程流程(转)
  12. python下视频的包_这套Python视频超详细,包你一小时就可开始入门,100天在编程界驰骋~...
  13. vc++网络安全编程范例(15)-导出会话密钥
  14. ECShop Discuz 和帝国CMS
  15. 单U盘 clonezilla 克隆ubuntu16.04系统
  16. FPGA组合逻辑训练-三八译码器
  17. 使用计算机管理文件教后反思,《管理计算机中的文件》教学设计
  18. 软件测试之独步武林系列(一)
  19. [考研经验]北京邮电大学软件学院2018年考研经验
  20. css怎样让字体变细,css怎么把字体变细?

热门文章

  1. iphone 微信下浏览器中数字去除下划线
  2. svn报错:This error was generated by a custom hook script on the Subversion server.
  3. C#通用权限管理-程序安全检查,这些你一定要考虑到位
  4. 轻松自动化---selenium-webdriver(python) (三)
  5. [.NET 三层架构(ADO.NET)+Web Service+多语言]WinForm三层架构重新实现TaskVision,外加WebService提供数据和多语言...
  6. 软件测试的学习之路 ------ HTML,CSS里的必备单词
  7. opencv 测试安装完成_opencv4.3 的安装(linux)
  8. 无论您的工作职能如何,如何获得功绩
  9. Bootstrap3 屏幕阅读器和键盘导航
  10. java编程方向_java网络编程方向具体该怎么去学