2010-02-08 29 views
11

是否有一種簡單方法可以在Android中更改對話框的內容,而無需重新創建對話框?我知道Activity.onCreateDialog()只在需要創建對話框時調用一次,並且這是您最初設置對話框內容的地方。我需要稍後改變對話框的內容,所以我想知道做這件事的正確方法是什麼。創建後更改Android對話框的內容

回答

8

在每次顯示Dialog之前調用onPrepareDialog() methodallowing you to update it appropriately

它通過相同的int ID作爲onCreateDialog()和您在該方法中創建的Dialog

@Override 
protected void onPrepareDialog(int id, Dialog dialog) { 
    //Always call through to super implementation 
    super.onPrepareDialog(id, dialog); 

    switch (id) { 
     case DIALOG_TIME: 
      ((AlertDialog)dialog).setMessage("The time is " + new Date()); 
      break; 
    } 
} 
+0

不知道我是如何錯過了。謝謝! – tronman 2010-02-08 22:07:21

+5

如果您想更改圖標,消息,標題和其他一些項目,這可以正常工作,但如果您想更改列表中的項目,我認爲它不起作用。例如,如果您調用AlertDialog.Builder的setSingleChoiceItems()方法,則無法在onPrepareDialog()中更改這些項目。唯一的解決方案是爲調用removeDialog()的對話框創建一個OnDismissListener ...這會強制每次調用onCreateDialog()方法。 – tronman 2010-07-06 18:47:26

0

上面沒有爲我工作。打電話removeDialog工作沒有解僱AlertDialog