2012-03-11 73 views
0

在我的Android应用程序中,我有一个对话框有几个选项,其中一个应该会导致当前对话框再次显示。如何从showDialog(i)调用showDialog(i)? (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”按钮不做任何事情,并且不会导致对话被解雇,如果可能的话。

回答

3

这里是讨论:Dialog.show() vs. Activity.showDialog()

请有上一看......

希望它能帮助。 :)

+0

因此,在这种特殊情况下,有必要替换'AlertDialog.Builder builder = new AlertDialog.Builder(this);' '最终AlertDialog.Builder builder = new AlertDialog.Builder(this);'和'showDialog(0);' 'builder.create()。show();'。 – BenH 2012-03-17 22:24:27