java - 为什么警报对话框未按正确顺序显示?

标签 java android handler android-alertdialog

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

私有(private)静态类 MyHandler 扩展处理程序 {

    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 :)

关于java - 为什么警报对话框未按正确顺序显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18021600/

相关文章:

java - 函数和可运行对象同时工作(如何?)(Android、Java)

java - 2个位置之间的距离法

java - java.util.List 是可变的吗?

java - Android SDK R 错误(及其他)

java - 初学者处理用户输入时的异常处理

android - 在 Firebase 中获取唯一推送 ID

android - 开始运行,我的按钮不再响应

android 无法在未调用 Looper.prepare 的线程内创建处理程序

android - 查找 AlertDialog 的 View

android - 如何在Android的camera 2 API中添加实时滤镜效果