【问题标题】:How to disable multiple clicks on button in Android如何在Android中禁用多次单击按钮
【发布时间】:2013-11-08 12:33:27
【问题描述】:

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

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

【问题讨论】:

  • 你的问题不够清楚,请稍微澄清一下。您能否也为您的 onclick 侦听器提供代码?

标签: java android onclicklistener


【解决方案1】:

您可以使用以下代码同时禁用多次点击

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);
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          您可以通过这种方式停止多个操作。

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

          【讨论】:

          • 这不起作用,因为它加载我的屏幕/弹出窗口比预期的要慢按钮再次启用,它再次打开屏幕/弹出窗口多次。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-15
          • 2019-07-22
          • 2019-09-23
          • 2023-03-21
          相关资源
          最近更新 更多