关于android 双击事件


大家好,关于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的一些功能的

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. 编写高效的Android代码
  5. Android之Service学习篇二:Service启动方式之boundService
  6. Android触屏事件和MotionEvent介绍
  7. Android语言切换原理
  8. 初涉Android蓝牙开发(转) 收藏以备后用
  9. 有关Android线程的学习

随机推荐

  1. suse linux android sdk 下载.安装.配置
  2. 安卓巴士Android开发神贴整理
  3. android 状态栏 时间 错误 adb连接
  4. Android(安卓)Studio 初体验
  5. android 自定义attr 详解
  6. Android内存管理、监测剖析
  7. android平台解析epub--epublib
  8. FFmpeg的Android平台移植—编译篇
  9. android WebView全屏观看视频 全屏观看直
  10. ViewPager的定时滚动,动态加载数据