这篇文章主要介绍了Android 单双击实现的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
记录单击、双击实现过程,进行简单的封装,便于复用,包括常用的软件双击退出。
双击实现:记录第一次点击时间,在设定时间内再次点击,则返回监听事件,否则不做处理;Application双击退出亦是同样的实现逻辑。
/**
* 双击实现
*
* @author 几圈年轮
*/
public abstract class BaseDoubleClickListener implements View.OnClickListener {
private static final long DOUBLE_TIME = 500;
private static long lastClickTime = 0;
@Override
public void onClick(View v) {
long currentTimeMillis = System.currentTimeMillis();
if (currentTimeMillis - lastClickTime < DOUBLE_TIME) {
onDoubleClick(v);
}
lastClickTime = currentTimeMillis;
}
/**
* 双击事件
*
* @param v 视图
*/
public abstract void onDoubleClick(View v);
}
调用方式:
view.setOnClickListener(new BaseDoubleClickListener() {
@Override
public void onDoubleClick(View v) {
}
});
Application双击退出:
private long onBackPressedTime;
@Override
public void onBackPressed() {
long timeSpan = System.currentTimeMillis() - onBackPressedTime;
onBackPressedTime = System.currentTimeMillis();
if (timeSpan > 2000) {
Toast.makeText(this, getResources().getString(R.string.exit), Toast.LENGTH_SHORT).show();
} else {
super.onBackPressed();
}
}
单击及双击实现:使用Handler进行延时消息发送,通过计数获取点击次数,若设定时间内点击两次则返回双击事件;单次,则返回单击事件。
/**
* 单击、双击实现
*
* @author 几圈年轮
*/
public abstract class BaseClickListener implements View.OnClickListener {
private static final int TIMEOUT = 400;
private int clickCount = 0;
private Handler handler;
protected BaseClickListener() {
handler = new Handler();
}
@Override
public void onClick(View v) {
clickCount++;
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (clickCount == 1) {
onSingleClick(v);
} else if (clickCount == 2) {
onDoubleClick(v);
}
handler.removeCallbacksAndMessages(null);
clickCount = 0;
}
}, TIMEOUT);
}
/**
* 单击实现
*
* @param v 视图
*/
public abstract void onSingleClick(View v);
/**
* 双击实现
*
* @param v 视图
*/
public abstract void onDoubleClick(View v);
}
调用方式:
view.setOnClickListener(new BaseClickListener() {
@Override
public void onSingleClick(View v) {
}
@Override
public void onDoubleClick(View v) {
}
});
主要重写了View的OnClickListener事件,也可以重写OnTouchListener进行处理;采用抽象类抽象方法,也可使用接口封装进行处理。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
织梦狗教程
本文标题为:Android 单双击实现的方法步骤
基础教程推荐
猜你喜欢
- Flutter手势密码的实现示例(附demo) 2023-04-11
- IOS 播放系统提示音使用总结(AudioToolbox) 2023-03-01
- 解决Android Studio突然不显示logcat日志的问题 2023-02-04
- IOS应用内跳转系统设置相关界面的方法 2022-11-20
- Android中的webview监听每次URL变化实例 2023-01-23
- Android多返回栈技术 2023-04-15
- Flutter绘图组件之CustomPaint使用详解 2023-05-12
- iOS开发教程之XLForm的基本使用方法 2023-05-01
- Android开发使用RecyclerView添加点击事件实例详解 2023-06-15
- android studio按钮监听的5种方法实例详解 2023-01-12
