2012-03-11 75 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