如何在ProgressDialog之后显示AlertDialog juste

时间:2011-03-14 16:05:08

标签: android progressdialog

我在网上搜索但我没有找到任何令人满意的答案。

我有一个任务可以花一些时间来完成,所以我使用ProgressDialog来通知用户该应用程序正在做某事。

如果在长任务期间出现错误,我想显示一个AlertDialog,让用户知道错误。

所以我写了代码,但ProgressDialog解散了,而AlertDialog没有显示。

我使用onCreateDialog()方法来管理我的对话框。

有人知道为什么吗?

谢谢。

3 个答案:

答案 0 :(得分:1)

我不确定为什么你的代码无效,但是如果这是一个时间问题,你可能会尝试使用Handler在短暂的延迟后调用显示你的第二个对话框:

new Handler().post(new Runnable() {
    @Override
    public void run() {
        showDialog(ERROR_CREDENTIALS_DIALOG);
    }
});

这可能会给UI线程一些时间来清理第一个对话框,第一个对话框的存在可能会影响第二个对话框。您也可以尝试使用postDelayed,但需要很短的时间延迟,例如100毫秒。

答案 1 :(得分:0)

您可以使用以下功能显示警告对话框。

    public void OpenDialog()
    { 
          AlertDialog.Builder dialog = new AlertDialog.Builder(this);
          dialog.setTitle("Error");
          dialog.setTitle("Your Message");

            dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialoginterface, int buttons) 
        {
            try
            {

            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
    });

    dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() 
    {

        public void onClick(DialogInterface arg0, int buttons) 
        {
        }
    });
    dialog.show();
    }

答案 2 :(得分:0)

在打开警告对话框之前,应确保完全取消进度对话框。我使用取消方法。


progressDialog.setOnCancelListener(本);

...

public void onCancel(final DialogInterface dialog){    showAlertDialog(); }

...

progressDialog.cancel()


任务完成后,您将调用progressDialog.cancel(); 这将触发onCancel方法并打开警报对话框,显示警报输出和动画。

注意:你也可以使用dismiss(),但它更容易出错。