Android双击监听

来源:互联网 发布:安卓传输mac 编辑:程序博客网 时间:2024/05/21 12:19

转载请标明出处:http://blog.csdn.net/wu_wxc/article/details/53705495
本文出自【吴孝城的CSDN博客】

写一个工具类
DoubleClickDetector .java

package cn.wuxiaocheng.doubleclickdetector.utils;import android.content.Context;import android.widget.Toast;/** *  * @author 吴孝城  * 功能:双击  * 使用:DoubleClickDetector mDoubleClick = new DoubleClickDetector(this); * */public class DoubleClickDetector {    public static final String DEFAULT_HINT_MESSAGE = "再按一次退出程序";    public static final int DEFAULT_SPACE_TIME = 2000;    private long lastClickTime;    private Context context;    private String hintMessage;    private long spaceTime;    // 构造方法,一个参数和两个参数的方法调用三个参数的方法    public DoubleClickDetector(Context context) {        this(context, DEFAULT_HINT_MESSAGE, DEFAULT_SPACE_TIME);    }    public DoubleClickDetector(Context context, String hintMessage) {        this(context, hintMessage, DEFAULT_SPACE_TIME);    }    public DoubleClickDetector(Context context, String hintMessage, long spaceTime) {        this.context = context;        this.hintMessage = hintMessage;        this.spaceTime = spaceTime;    }    // 点击时执行的提示    public boolean onClick() {        long currentTime = System.currentTimeMillis();        boolean result = (currentTime - lastClickTime) < spaceTime;        lastClickTime = currentTime;        if (!result) {            Toast.makeText(context, hintMessage, Toast.LENGTH_SHORT).show();        }        return result;    }    // 用户自定义双击时间间隔    public void setSpaceTime(long spaceTime) {        this.spaceTime = spaceTime;    }    // 用户自定义提示信息    public void setHintMessage(String hintMessage) {        this.hintMessage = hintMessage;    }}

然后在其他类中调用
MainActivity .java

package cn.wuxiaocheng.doubleclickdetector;import android.app.Activity;import android.os.Bundle;import cn.wuxiaocheng.doubleclickdetector.utils.DoubleClickDetector;public class MainActivity extends Activity {    private DoubleClickDetector mDoubleClick; // 双击监听    private String hintMsg = "确认退出程序"; // 用户自定义提示文字    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initDoubleClick();    }    /**     * 初始化双击监听     */    private void initDoubleClick() {        // 初始化双击监听,并传入必需的Context参数,        // hintMsg是用户自己选择添加的提示内容        mDoubleClick = new DoubleClickDetector(this, hintMsg);    }    /**     * 点击返回按钮     */    @Override    public void onBackPressed() {        if (mDoubleClick.onClick()) {            // 退出程序            finish();            System.exit(0);        }    }}

这里写图片描述

0 0
原创粉丝点击