1

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

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

4

5 回答 5

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);
}
于 2014-03-25T07:07:14.757 回答
1

在 onClick 中实现逻辑以确定是否要忽略单击。

于 2013-11-08T12:36:51.930 回答
0

您可以禁用该按钮。当您关闭弹出窗口时启用按钮,当弹出窗口可见时将其禁用。继续收听弹出操作以及用户何时返回上一个屏幕。

于 2013-11-08T12:36:48.680 回答
0

在按钮 onClick 监听器上维护一个变量并更改值以确定您何时要单击按钮..

于 2013-11-08T12:45:22.153 回答
-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;
}
于 2013-11-08T12:46:20.633 回答