gpt4 book ai didi

android - 如何防止跨应用程序在Android中双击?

转载 作者:搜寻专家 更新时间:2023-11-01 09:19:18 26 4
gpt4 key购买 nike

我的应用包含大约 50-60 个屏幕。每个屏幕都有一个用于打开新屏幕的按钮。现在我面临的问题是当用户双击按钮时,新屏幕打开两次。

对于这个问题,我找到了如下解决方案。

 if (SystemClock.elapsedRealtime() - mLastClickTime < 1000){
return;
}

mLastClickTime = SystemClock.elapsedRealtime();

但是为了防止双击,我需要在每次点击按钮时都写上上面的代码。我没有创建随处使用的通用自定义按钮。

有什么方法可以在应用级别双击?

最佳答案

我遇到了同样的问题,我解决了它,如下所示,它可能对你有帮助。

你可以通过两种方式实现一个:尝试使用 boolean 变量:

public class Blocker {
private static final int BLOCK_TIME = 1000;
private boolean isBlockClick;

/**
* Block any event occurs in 1000 millisecond to prevent spam action
* @return false if not in block state, otherwise return true.
*/
public boolean block(int blockInMillis) {
if (!isBlockClick) {
isBlockClick= true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
isBlockClick= false;
}
}, blockInMillis);
return false;
}
return true;
}

public boolean block() {
return block(BLOCK_TIME );
}
}

在每次点击时使用如下所示。

button.setOnClickListener(new View.OnClickListener() {
private Blocker blocker = new Blocker();

@Override
public void onClick(View v) {
if (!blocker.block(block-Time-In-Millis)) {
// do your action
}
}
});

两个或者您可以在按钮的每个点击事件上设置 button.setEnable(false),如下所示

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btn.setEnabled(false);
}
});

关于android - 如何防止跨应用程序在Android中双击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57883622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com