Android多次点击事件

转载 2018年04月17日 16:27:09

android本次没有提供双击或者多次点击事件,需要我们自己实现。

    思想:使用数组记录点击时的系统时间,如果当前点击事件发生后点击了3次并且当前的系统时间和第一次点击事件发生的时间的差值小于500则认为是连续点击的而且点击了3次。

    使用数组很巧妙的控制了点击次数,因为数组默认初始值全部为0,每次点击都会为数组最后一个元素赋值,然后把数组所有元素左移一位,每移动一次第一次点击事件的那个值就左移一位了,如果左移3次了mHints[0]一定不为0,如果mHints[0]为0说明还没有点击3次,如果mHints[0]不等于0说明数组已经移动3次了发生了3次点击事件

     接下来就是考虑是否是连续点击了,假设每次点击时的系统时间为以下值。

     数组初始:  0       0       0

     第一次点击:0       0       1020

     第二次点击  0      1020     1050

     第三次点击  1020   1050     1070

     第3次点击之后if判断语句时假设当前当前系统时间为1075

     if (SystemClock.uptimeMillis()-mHints[0]<=500)

     此行语句就是1075-1020<=500 ,1020正是第一次点击时的时间,第3次点击之后的时间1075和第一次点击时的时间1020的差值就是3次点击所耗费的时间, 如果这个差值小于500我们就认为是连续点击

package com.passion.mobilesafe;
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
/**
 * Created by passion on 2015/8/10.
 */
public class MultiClickActivity extends Activity
{
    private TextView tv_name;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        tv_name= (TextView) findViewById(R.id.tv_toast_address);
        tv_name.setOnClickListener(new View.OnClickListener()
        {
           //需要监听几次点击事件数组的长度就为几
            //如果要监听双击事件则数组长度为2,如果要监听3次连续点击事件则数组长度为3...
            long[] mHints = new long[3];//初始全部为0
            @Override
            public void onClick(View v)
            {
                //将mHints数组内的所有元素左移一个位置
                System.arraycopy(mHints, 1, mHints, 0, mHints.length - 1);
               //获得当前系统已经启动的时间
                mHints[mHints.length - 1] = SystemClock.uptimeMillis();
                if (SystemClock.uptimeMillis()-mHints[0]&lt;=500)
                    Toast.makeText(MultiClickActivity.this, &quot;点击了3次&quot;, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Android开发之实现多次点击事件

在Android中给我们提供了单次点击事件。但并没有给我们提供双击,或者实现在一定时间内的多次事件。所以需要我们自己在单机监听上进行修改实现。 有如下两种实现方式: 1、定义一个存贮上一个第一次...
  • fengshizty
  • fengshizty
  • 2014-12-02 17:38:20
  • 3304

Android控件的两次及多次点击事件

自己模拟了一个Button的双击事件,想到三击事件要怎么写呢?通过查看Google大牛的多次点击的事件,发现我的学渣真是难以望其项背。。。 多次点击事件的原理:记录每次点击事件的当前时间,判断最后一...
  • qq_31010431
  • qq_31010431
  • 2016-05-16 11:10:42
  • 2442

Android:防止过快点击造成多次事件

onClick事件是Android开发中最常见的事件,本文介绍了一个小技巧,能防止view被误操作快速重复点击时,而重复产生事件。...
  • barryhappy
  • barryhappy
  • 2015-03-20 23:57:45
  • 44487

Android防止点击过快造成多次响应事件

最近开发过过成中遇到一些小问题,比如一个btn点击用户可能只点击了一次但是后台响应了多次,像一些表单的提交出现这种问题比较棘手,当然解决这种问题的方案比较多:比如自定义单次点击的btn,或者在点击的时...
  • lplj717
  • lplj717
  • 2016-12-29 16:01:28
  • 562

Android 双击以及连续多次点击事件系统自带判断方法

import android.app.Activity; import android.os.Bundle; import android.os.SystemClock; import android...
  • kpioneer123
  • kpioneer123
  • 2016-07-29 16:34:00
  • 1693

android 防止Button的频繁点击,多次执行点击事件

开发过程中经常遇到连续快速的点击带有点击事件的view,可能会执行多次点击事件, 怎么控制一个带有点击事件的View多次点击事件的时间间隔大于0.5s呢...
  • u012885461
  • u012885461
  • 2016-04-18 10:42:11
  • 1635

【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)

在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮...
  • zhufuing
  • zhufuing
  • 2016-11-03 15:15:20
  • 14438

Android 防止多次点击事件

恐怕大家都会遇到这样的问题,一个点击事件多次触发,导致,同样的内容提交了多次,或者说弹出多个页面...   下面是简单的方案,大家可以试一试 原理很简单,当我们第一次点击的时候,把按钮变成不可点...
  • u011111137
  • u011111137
  • 2015-12-06 15:52:07
  • 150

android的多次点击事件

本次实现是借鉴android系统源代码setting 多次点击事件 源代码setting 1.在android系统中,设置里面->关于手机->安卓版本(即android version),...
  • qq_33994844
  • qq_33994844
  • 2016-07-26 17:52:55
  • 129

Android百度地图onMarkerClick方法执行多次

最近在使用百度地图时,要实现返回当前位置附近的Marker,然后给Marker添加点击事件,点击Marker弹出PopupWindow,每次刷新地图显示新的Marker,使用bdMap.clear()...
  • z740852294
  • z740852294
  • 2017-08-30 18:03:11
  • 855
收藏助手
不良信息举报
您举报文章:Android多次点击事件
举报原因:
原因补充:

(最多只允许输入30个字)