Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:快速按下按钮会导致多个意图实例_Java_Android_User Interface_Android Intent - Fatal编程技术网

Java Android:快速按下按钮会导致多个意图实例

Java Android:快速按下按钮会导致多个意图实例,java,android,user-interface,android-intent,Java,Android,User Interface,Android Intent,目前,我遇到了一个错误,如果用户快速点击按钮,按钮所连接的意图将触发多次,导致该意图的堆栈需要再次追溯。我该如何避免或补救 谢谢 ~k 这是OnClick侦听器的内部。我在这里设置布尔值,然后在过程结束时取消设置 if(!isDating) { intent.setClass(context, EventDate.class); isDating = true; ((TabGroupActiv

目前,我遇到了一个错误,如果用户快速点击按钮,按钮所连接的意图将触发多次,导致该意图的堆栈需要再次追溯。我该如何避免或补救

谢谢 ~k

这是OnClick侦听器的内部。我在这里设置布尔值,然后在过程结束时取消设置

        if(!isDating)
        {
            intent.setClass(context, EventDate.class);
            isDating = true;
            ((TabGroupActivity)
            context).startChildActivity("EventDate",intent);
        }

如果我有一分钱来解决这个问题,我的QA档案中的问题,如果我不是百万富翁的话,我会非常富有:p一个人能做的只有这么多。基于您的实现,您可以尝试一些事情

  • 如前所述,使用布尔值。单击该按钮后将其设置为true,如果再次单击该按钮,则检查该布尔值。完成后,将其设置为false

  • 使用进度对话框,以防它是一个很长的活动,如在下一个活动中显示之前接收数据。这也给了用户一个提示,有些事情正在发生,他不必担心


  • 请尝试为意图设置标志,如

    intent.setFlags(FLAG_ACTIVITY_BROUGHT_TO_FRONT);
    
    您还可以通过应用程序部分中的AndroidManifest.xml文件设置此标志。与上述方法相比,我更喜欢这种方法


    希望这能解决您的问题。

    事实上我找到了更好的解决方案

    通过设置onClickListener(null);然后在Resume上重新创建它,它绕过了必须使用标志之类的东西

    !!k

    使用

    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    

    它解决了这个问题

    好吧,你可以定义一个布尔变量,比如
    isClicked
    ,当单击将
    isClicked
    设置为true时,直到你完成单击过程,将其设置为false。“按钮所附加的意图”-这意味着什么?您不能将
    意图
    附加到
    按钮
    -这没有任何意义。您能把代码放在启动意图上吗?谢谢您的帮助!真正地即使有几个按钮?那会不会弄得乱七八糟?