如何从showDialog(i)调用showDialog(i)? (机器人)

时间:2012-03-11 02:29:12

标签: android alertdialog

在我的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”按钮不执行任何操作而不会导致对话框被解除,如果可能的话。

1 个答案:

答案 0 :(得分:3)

以下是讨论:Dialog.show() vs. Activity.showDialog()

请看一下......

希望它有所帮助。 :)