Android 防止过快(多次)点击的实现方法
在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮,当然,除了相对应的对应用进行优化和设置点击selector以外,我们还可以做一些其它的工作,例如,判断按钮的 onClick 事件在规定事件段内只响应一次(在论坛的搜索功能中,我们常见到每10秒才可以进行一次搜索的设置,这就在一定程度上减少了无效的网络访问量,减轻服务器压力,APP同理),就如下面代码所示:
public final class AppUtils {
private AppUtils() {
}
private static long mLastClickTime;// 用户判断多次点击的时间
public static boolean isFastDoubleClick() {
long time = System.currentTimeMillis();
if (Math.abs(time - mLastClickTime) < 500) {
return true;
}
mLastClickTime = time;
return false;
}
}
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (AppUtils.isFastDoubleClick()){
// 进行点击事件后的逻辑操作
}
}
});
另一种方式。。。。 新建一个onclicklistener
public abstract class OnMultiClickListener implements View.OnClickListener{
// 两次点击按钮之间的点击间隔不能少于1000毫秒
private static final int MIN_CLICK_DELAY_TIME = 1000;
private static long lastClickTime;
public abstract void onMultiClick(View v);
@Override
public void onClick(View v) {
long curClickTime = System.currentTimeMillis();
if((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {
// 超过点击间隔后再将lastClickTime重置为当前点击时间
lastClickTime = curClickTime;
onMultiClick(v);
}
}
}
btn.setOnClickListener(new OnMultiClickListener() {
@Override
public void onMultiClick(View v) {
// 进行点击事件后的逻辑操作
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Android实现TextView中的部分文字实现点击跳转功能
在移动端应用中,往往需要在一段文字中让某几个关键词或短语具备点击跳转功能,如果将整段文字放到 Button、Link 或单独的 View 中,通常会带来布局复杂、样式难以统一、可维护性差等问题,所以本文将给大家介绍Android实现TextView中的部分文字实现点击跳转功能2025-04-04
Android Studio 利用Splash制作APP启动界面的方法
这篇文章主要介绍了Android Studio 利用Splash制作APP启动界面,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-05-05


最新评论