Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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 为什么警报对话框的显示顺序不正确?_Java_Android_Handler_Android Alertdialog - Fatal编程技术网

Java 为什么警报对话框的显示顺序不正确?

Java 为什么警报对话框的显示顺序不正确?,java,android,handler,android-alertdialog,Java,Android,Handler,Android Alertdialog,我有一个关于依次显示警报对话框的问题。 我试图显示三个警报对话框,但每次第三个对话框是第一个出现时,第二个应该是第二个,在这种情况下,第一个始终是最后一个。 我希望它们以代码顺序显示。 请考虑代码,并建议我为什么会发生这种情况和一个坚实的解决方案。< /P> 私有静态类MyHandler扩展了Handler{ MainActivity activity; public MyHandler(MainActivity activity){ this.activity

我有一个关于依次显示警报对话框的问题。 我试图显示三个警报对话框,但每次第三个对话框是第一个出现时,第二个应该是第二个,在这种情况下,第一个始终是最后一个。 我希望它们以代码顺序显示。 请考虑代码,并建议我为什么会发生这种情况和一个坚实的解决方案。< /P> 私有静态类MyHandler扩展了Handler{

    MainActivity activity;

    public MyHandler(MainActivity activity){
        this.activity = activity;
    }
    @Override
    public void handleMessage(Message msg) 
    {
        if(activity.connectionToTupleSpace == true)
        {
            activity.showDialog("Dialog 1", "It should be displayed first");
            activity.showDialog("Dialog 2", "It should be displayed second");
            activity.showDialog("Dialog 3", "It should be displayed third");
        }
        else
        {
            Toast.makeText(activity.getBaseContext(), " No connection to Tuple Space Server", Toast.LENGTH_SHORT).show();

        }
    }
};//handler for Thread



private void showDialog(String title, String message)
{
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle(title);
    builder.setMessage(message);
    builder.setPositiveButton("OK", null);
    builder.show();
}

它们正以正确的顺序出现

首先显示对话框1。 然后在数字1的上方显示对话框2。 然后在第2个对话框的顶部显示第3个对话框

这意味着数字3将首先显示,因为这是您添加的最新数字


因此,最简单的解决方案是:颠倒顺序,先显示3,然后显示2,然后显示1:)

它们以正确的顺序显示

首先显示对话框1。 然后在数字1的上方显示对话框2。 然后在第2个对话框的顶部显示第3个对话框

这意味着数字3将首先显示,因为这是您添加的最新数字


因此,最简单的解决方案是:颠倒顺序,先显示3,然后显示2,然后显示1:)

正如我所知,在您的代码中,您使用3个MainActivity实例,因此有3个Activite,因此如果您知道“stack”,您看到它是合理的。我认为您应该为每个AlertDialog添加值来设置优先级。

正如我所知,在您的代码中,您使用了3个MainActivity实例,因此有3个Activite,因此如果您知道“stack”,您看到它是合理的。我认为您应该为每个AlertDialog添加值来设置优先级。

另一个好的解决方案也是在第一个对话框被取消后执行下一个对话框:)因此,可以使用IF语句,也可以通过单击按钮打开新对话框。我尝试通过单击按钮打开下一个对话框,但仍然会发生这种情况以同样的方式打开…另一个好的解决方案是在第一个对话框被关闭后执行下一个对话框:)因此,要么使用IF语句,要么用按钮单击打开新对话框。我试图用按钮单击打开下一个对话框,但仍然以同样的方式发生。。。