Wiki_Android_双击或多次点击事件
来源:互联网 发布:sql语句单引号转义 编辑:程序博客网 时间:2024/04/30 03:06
布局文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/bt_double" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="响应双击事件" /> <Button android:id="@+id/bt_mult" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="响应多次点击事件" /></LinearLayout>
Java代码:
package com.liangdianshui.test;import android.app.Activity;import android.os.Bundle;import android.os.SystemClock;import android.view.View;import android.widget.Button;import android.widget.Toast;/** * Created by 两点水 on 2015/8/23. */public class TestDoubleClickAndMultipleClick extends Activity { private Button bt_double; private Button bt_mult; private long fist_click_time; //记录第一次点击时的时间 long[] mHits = new long[3]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_testdoubleclickandmultipleclick); bt_double = (Button) findViewById(R.id.bt_double); bt_mult = (Button) findViewById(R.id.bt_mult); //响应双击的点击事件 bt_double.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (fist_click_time > 0) { long sencond_click_time = SystemClock.uptimeMillis(); //获取第二次点击的时间 long dt = sencond_click_time - fist_click_time; if (dt < 500) { //两次点击的按钮的时间间隔不超过500毫秒 Toast.makeText(TestDoubleClickAndMultipleClick.this, "这是双击事件", Toast.LENGTH_LONG).show(); } else { fist_click_time = 0; } return; } fist_click_time = SystemClock.uptimeMillis();//获取开机时CPU记录的时间 new Thread() { public void run() { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } fist_click_time = 0; } }.start(); } }); //long[] mHits = new long[3]; 只要修改数组中的值就能实现多次点击事件,3就是三次点击,2就是两次点击 bt_mult.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /** arraycopy(Object src, 拷贝的源数组 int srcPos, 从源数组的那个位置开始拷贝 Object dst, 目标数组 int dstPos, 从目标数组的那个位子开始写数据 int length); 拷贝的元素的个数 */ System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1); mHits[mHits.length - 1] = SystemClock.uptimeMillis(); if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) { Toast.makeText(TestDoubleClickAndMultipleClick.this, "3次点击事件", Toast.LENGTH_LONG).show(); } } }); }}
运行结果:
多次点击事件代码解释图片:
0 0
- Wiki_Android_双击或多次点击事件
- Android双击,连续多次点击事件判断
- 双击、多次点击(评论)
- android防止按钮多次点击和添加双击事件
- 多次点击事件监听
- Android 双击以及连续多次点击事件系统自带判断方法
- 实现双击、多击(多次点击)功能
- Windows Phone 多次点击事件
- Android 防止多次点击事件
- 安卓多次点击事件
- android的多次点击事件
- Button取消多次点击事件
- 按钮的多次点击事件
- View的多次点击事件
- Android开发之实现多次点击事件
- Android:防止过快点击造成多次事件
- Android 防止过快点击造成多次事件
- Android:防止过快点击造成多次事件
- swtich与if else是否能作用在byte上,作用在long上,作用在String上?
- CCActionInterval源码解析
- vs2010安装问题
- Node.js中“同步”的EventEmitter
- 使用API-HOOK修改IAT的地址
- Wiki_Android_双击或多次点击事件
- JMS 学习 一
- gcc之静态库和动态库
- HDU1068Girls and Boys二分图最大匹配
- 【HTML】仿淘宝五星评价显示任何分数
- 索引
- for(i=0,j=0;i<10,j<10;i++,j++)用python怎么写
- 转载:PostgreSQL 内部概貌
- uPnp概述