1

我有一个关于按顺序显示警报对话框的问题。我正在尝试显示三个警报对话框,但每次第三个是第一个出现的第一个,在这种情况下第二个应该是第二个,第一个总是最后一个。我希望它们按代码顺序显示。请考虑代码并建议我为什么会发生这种情况以及一个可靠的解决方案。

私有静态类 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();
}
4

2 回答 2

1

它们以正确的顺序显示。

首先显示第 1 号对话框。然后在第 1 号的顶部显示第 2 号对话框。然后在第 2 号的顶部显示第 3 号对话框。

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

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

于 2013-08-02T16:19:09.680 回答
0

据我所知,在您的代码中,您使用了 3 个 MainActivity 实例,因此有 3 个活动,所以如果您知道“堆栈”,您会发现它是合理的。我认为你应该增加价值来为每个 AlertDialog 设置优先级。

于 2013-08-02T16:23:24.493 回答