如何在按下(但是没有长按)和长按时分别执行不同的操作
2012-07-31 19:59
232 查看
由于onDown在长按时也会执行,所以不能再onDown和长按监听器的onlongclick中分别执行各种的动作(这样长按时会执行onlongclick和ondown两个动作)
使用手势可以很好解决这个问题
使用手势可以很好解决这个问题
package lon.detector; import android.content.Context; import android.util.Log; import android.view.GestureDetector; import android.view.GestureDetector.OnGestureListener; import android.view.MotionEvent; import android.widget.TextView; public class MyText extends TextView implements OnGestureListener { private GestureDetector detector; public MyText(Context context) { super(context); detector = new GestureDetector(this); } @Override public boolean onTouchEvent(MotionEvent event) { detector.onTouchEvent(event); return super.onTouchEvent(event); } public boolean onDown(MotionEvent e) { Log.e("-----", "---: on Down"); return false; } public void onShowPress(MotionEvent e) { Log.e("-----", "---: on ShowPress"); } public boolean onSingleTapUp(MotionEvent e) { Log.e("-----", "---: on SingleTapUp"); return false; } public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { Log.e("-----", "---: on Scroll"); return false; } public void onLongPress(MotionEvent e) { Log.e("-----", "---: on Long"); } public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { Log.e("-----", "---: on fling"); return false; } }onLongPress里写长按事件
onSingleTapUp里写非长按的点击事件
这样就不会出现上述长按会调用两个动作的问题了
相关文章推荐
- 如何在按下(但是没有长按)和长按时分别执行不同的操作
- hibernateTemplate.find或hibernateTemplate.save()执行操作没有反应,但是有sql语句
- 【Android】人体图片、地图图片、热力图,如何实现点击不同的部位执行不同的操作?
- 如何智能化操作让Win7 按时自动执行任务(图文)
- jquery 如何同时选择多个不同的id执行同一种操作?
- combox如何根据下拉框执行不同的操作
- 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本着勤俭节约的
- zencart如何清空商品演示数据和没有商品数据的sql执行语句
- 当您Exchange 2010 提示没有权限查看内容,但是你的确是有这个权限的时候,可以执行以下指令!
- C++中如何在main()函数之前执行操作?
- VPS定时任务没有按时执行的问题
- X-code beta 开发iWatch项目,运行没有错误,但是某些操作一点就崩,而且找不错误的原因场景一
- 集合已修改;枚举操作可能无法执行。使用foreach 循环删除DataRow的时候的问题! 该死的AcceptChanges() Row.elete() Remove(Row)使用不同。
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何添加自定义Task,如何让程序的一部分拥有不同的执行周期
- centOS报错:已将该虚机配置为64位客户机操作系统。但是,无法执行64位操作。
- switch开关语句 没有break是如何执行的
- 程序中如何使用代码执行Insert操作
- delphi内如何检测用户多长时间没有鼠标与键盘操作?
- 该文件没有程序与之关联来执行该操作,请在控制面板的文件夹选项中创建关联 解决代码
- mac系统下如何获取root权限执行写入操作