如果您在屏幕/弹出窗口加载之前足够快,则单击我的应用程序中的按钮时会多次加载它们。我知道如何禁用按钮上的单击,但这不是一个选项,因为当您关闭弹出窗口或返回上一个屏幕时,该按钮被禁用。我尝试使用Handler和Runnable在按钮再次激活之前等待1秒但是如果操作系统需要更多时间来打开下一个屏幕,则此解决方案不是最佳的。所以我正在寻找最佳解决方案。有什么想法吗?
编辑:setClickable(false)然后将其设置为true不起作用,因为它加载我的屏幕/弹出窗口比预期慢,再次启用按钮并再次打开屏幕/弹出窗口。
答案 0 :(得分:2)
您可以使用以下代码同时禁用多次点击
private boolean isClicked;
@Override
public void onClick(final View v) {
if(isClicked) {
return;
}
isClicked = true;
v.postDelayed(new Runnable() {
@Override
public void run() {
isClicked = false;
}
}, 1000);
}
答案 1 :(得分:1)
在onClick中实现逻辑,以确定是否要忽略该点击。
答案 2 :(得分:0)
您可以禁用该按钮。当您关闭弹出窗口时启用该按钮,当弹出窗口可见时,将其禁用。继续监听弹出窗口的操作以及用户返回上一屏幕的时间。
答案 3 :(得分:0)
在按钮onClick侦听器上维护一个变量并更改该值以确定何时单击按钮..
答案 4 :(得分:-1)
您可以通过这种方式停止多项操作。
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick()
{
performOperation();
}
});
public void performOperation()
{
static boolean working = true;
if(working)
{
return;
}
working = true;
//Do you work here;
working = false;
}