导航:首页 > 操作系统 > android双击单击

android双击单击

发布时间:2023-09-17 17:34:36

1. android的ontouch方法如何判断单击还是双击

android 上没有双击事件 也没有那个概念 ,双击 就是两次单击。当点击事件 出发是 按下的时候出发一次onTouch 事件 抬起的时候 也触发一个onTouch 事件,如果你想做双击的话 只能自己进行判断了 用两次onTouch 抬起时的时间间隔 来 定位他是否是双击。

2. android textview或者LinearLayout的双击事件怎么做

这个我实现了,但是也是用记录上次点击时间的方法,代码给你看下。

java">importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.TextView;

importcom.sinovoice.test.R;

{
privatestaticfinalStringTAG="DoubleClickActivity";

privateintclickCount;
privatelongpreClickTime;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

TextViewtv=(TextView)findViewById(R.id.tv_main);
clickCount=0;
tv.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
if(clickCount==0){
好此preClickTime=System.currentTimeMillis();
clickCount++;
}elseif(clickCount==1){
longcurTime=System.currentTimeMillis();
if((curTime-preClickTime)<500){
轮袜慧doubleClick();
}
clickCount=0;
preClickTime=0;
}else{
腊答Log.e(TAG,"clickCount="+clickCount);
clickCount=0;
preClickTime=0;
}
}
});
}

privatevoiddoubleClick(){
Log.i(TAG,"doubleclick");
}
}

3. android button 双击操作如何监听

android里面没有监听双击事件的操作,如果想实现的话我的建议是在
private int count = 0;
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
count++;
if(cout == 2){
.监听处理.
count = 0;
}
}
}) ;
这样做的话会导致一个问题,那就是用户在单击一下是没什么操作 当用户很长时间没单击之后再单击一次仍然会执行相关操作,这样给用户的体验很不好,如想改善最好是通过一个线程来监控count让count在一定时间内刷新为0如下
private int count = 0;
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
count++;
if(cout == 2){
.监听处理.
count = 0;
}
}
}) ;

new Thread(new Runnable(){
public void run() {
try {
Thread.sleep(500);
count = 0;
} catch (InterruptedException e) {
e.printStackTrace();
}
}}).start();

这样做的话有可能的情况是当用户在500ms末单击一下在另外一个500ms初单击一下这样是不会触发相应的事件的,这是这个程序的本身最大的缺陷

4. Android手势---GestureDetector

GestureDetector 可以使用 MotionEvents 检测各种手势和事件。

这个类只能用于检测触摸事件的 MotionEvent

GestureDetector有三个内部接口,两个内部类

他们都是起到监听器的作用

注意:SimpleOnGestureListener继承了GestureDetector的三个内部接口

GestureDetector自带了五个构造方法,但是有两个被废弃了

因为第三个调用第二个,所以只要关注前面两个就行了

我们发现第二个构造方法中多了一个Handler变量
一般来说,不会使用这个构造方法

但是因为GestureDetector中的数据是给GestureHandler内部类进行处理,这个类会使用Handle,由穗穗Handler的知识知道,创建Handler必须有Looper,但是在一些新开的线程中没有创建Looper,所以我们需要传入一个带了Looper的Handler变量,否则,GestureDetector对象会创建失败

按下是所以手势必定有的动作
所以无论什么手势,第一个调用的方法就是onDown

注意:
GestureDetector的点击对图片,按钮等无用

为了解决这个问题,我们可以

这两个方法都可以响应到单击事件,但是他们之间还是有区别的

当我们同时在监听器中覆写这两个方法,并且进行单击事件
我们会发现当进行单击事件的时候,这几个方法响应的顺序是这样的

首先onDown()必定是第一个执行的,但是会发现onSingleTapUp在onSingleComfirmed之前执行
我查阅了相关文档,发现他们虽然同样响应的是当手指离开屏幕的活动,但是 onSingleTapUp是立即执行 ,而 onSingleComfirmed却要在离开后300ms后才执行 ,这样悉世的目的是确认我们进行的是单击事件(为了防止我们在300ms内再次进行单击事件),所以他们的名字分别是Up和Comfirmed

所以,在 设置双击事件时,最好使用onSingleComfirmed(),进行双击时不会回调单击方法

这两个方法都可以响应双击事件,为了验证他们的区别,我们同样在一个响应器中覆写这两个方法,并且进行双击事件(我们这里单击事件使用onSingleComfirmed)

我们使用Log.e()把方法响应的顺序弄出来,发现他们规律很神奇

然后我在onDoubleTapEvent()中吧MotionEvent e 输出,
然后方法响应的顺序变成:

我们对以上信息进行分析:
DoubleTap在DoubleTapEvent前面执行,但是根据DoubleTapEvent的第一个MotionEvent是Down,所以判断 双击的响应条件是在第一次单击后的300ms内按下手指

我们又尝试在双击后手指不离开屏幕,可见随时间的延长,Move也变得更多,
由此判断, onDoubleTapEvent是实时回调的,并且是用来检测MotionEvent

这次我们在响应器中覆写所有方法,进行长按操作
发现方法响应的顺序为:

也就是说,在长按睁族肢时,onShowPress在onLongPress前面执行

同样,我们覆写所有方法,进行滑动操作,
发现方法的响应顺序为

由此可见,在滑动/拖动过程中,不断调用onScroll,最后调用onFiling

当然,Android自带的手势不能完全满足我们的需求,于是Android提供了自建手势的方法,这些内容将在下一篇博客中陈述

5. 安卓 如何区别单击和双击分别执行

你可以用onTouchEvent方法的按下事件,判咐帆断2次间隔时间,每次点击记一下时间,如果第二次明丛点击时间和第一次的时间特别短的话就是双击,就做双击的事,如果时间长的话就做单衡槐雹击

6. android平板电脑中怎么样判断是单击还是双击

android平板电脑中是没有双击选项的,原因如下:

  1. android平板电脑和电脑系统不同而且操作也是不同的,电脑打开软件是需要双击软件或者右键后单击选择穗轿打开。

  2. android平板电脑打开软件只需要点击一下就可以打开了,点击软件2次和点击1次效果是一败闷样的,都是会察族弯打开软件的。

阅读全文

与android双击单击相关的资料

热点内容
文件夹英文名排序 浏览:48
西二旗最高程序员 浏览:95
台湾写真内部加密无删减视频 浏览:828
在线照片压缩变小 浏览:654
隐藏配置文件夹 浏览:186
php分布式模块化开发 浏览:389
wula是什么app 浏览:832
豌豆荚里怎么降低安卓手机版本 浏览:371
桌面的文件夹怎样解散 浏览:796
贵州贵阳山洞服务器云空间 浏览:221
年薪48万程序员老公 浏览:917
使用预构建的python 浏览:532
加密对冲基金交易有限公司 浏览:357
烟台制冷压缩机价格 浏览:249
平板能用腾讯云服务器吗 浏览:867
有js基础学python 浏览:599
程序员可以回老家盖房子吗 浏览:555
pythonserial波特率 浏览:578
pc我的世界国际服怎么下服务器 浏览:144
udp净荷加密 浏览:928