Android 如何从showDialog(i)调用showDialog(i)?(安卓)

Android 如何从showDialog(i)调用showDialog(i)?(安卓),android,android-alertdialog,Android,Android Alertdialog,在我的Android应用程序中,我有一个带有几个选项的对话框,其中一个选项将导致当前对话框再次显示 是这样的: protected Dialog onCreateDialog(int id) { AlertDialog.Builder builder = new AlertDialog.Builder(this); if (id == 0) { builder.setMessage("Message 0") .setPositiveB

在我的Android应用程序中,我有一个带有几个选项的对话框,其中一个选项将导致当前对话框再次显示

是这样的:

protected Dialog onCreateDialog(int id) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    if (id == 0) {
        builder.setMessage("Message 0")
               .setPositiveButton("Show Message 0 Again", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       showDialog(0);
                   }
               })
               .setNegativeButton("Show Message 1", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       showDialog(1);
                   }
               });
    } else {
        builder.setMessage("Message 1")
               .setPositiveButton("Dismiss", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       // nothing
                   }
               });
    }
    AlertDialog dialog = builder.create();
    return dialog;
}
但是,当我单击“再次显示消息0”按钮时,对话框被取消,不再显示。“显示消息1”按钮工作正常

我更希望对话框实际上被取消,然后再次打开,而不是简单地让“再次显示消息0”按钮不做任何事情,也不导致对话框取消,如果可能的话。

下面是讨论:

请看一下

希望能有所帮助。:)

以下是讨论:

请看一下


希望能有所帮助。:)

因此,在这种特殊情况下,有必要替换“AlertDialog.Builder=new AlertDialog.Builder(this);”使用“final AlertDialog.Builder=new AlertDialog.Builder(this);”和“showDialog(0);”使用“builder.create().show();”。因此,在这种特殊情况下,有必要替换“AlertDialog.Builder=new AlertDialog.Builder(this);”使用“final AlertDialog.Builder=new AlertDialog.Builder(this);”和“showDialog(0);”使用“builder.create().show();”。