如何在Android中禁用多次点击按钮

时间:2013-11-08 12:33:28

标签: java android onclicklistener

如果您在屏幕/弹出窗口加载之前足够快,则单击我的应用程序中的按钮时会多次加载它们。我知道如何禁用按钮上的单击,但这不是一个选项,因为当您关闭弹出窗口或返回上一个屏幕时,该按钮被禁用。我尝试使用Handler和Runnable在按钮再次激活之前等待1秒但是如果操作系统需要更多时间来打开下一个屏幕,则此解决方案不是最佳的。所以我正在寻找最佳解决方案。有什么想法吗?

编辑:setClickable(false)然后将其设置为true不起作用,因为它加载我的屏幕/弹出窗口比预期慢,再次启用按钮并再次打开屏幕/弹出窗口。

5 个答案:

答案 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;
}