2011-10-18 60 views
2

我有一個小問題。在我的計劃,我定義onCreateDialog和動態對話框(Android)

protected Dialog onCreateDialog(int id) { 
    if (id == CONTEXT_MENU_ID) { 
     return createMyDialog(); 
    } 
    return super.onCreateDialog(id); 
} 

,然後顯示對話框調用

showDialog(CONTEXT_MENU_ID) 

我的問題是,有時我想動態改變執行之間的對話的文本。但是用這種方法,Dialog從不會被重新創建。如何在顯示對話框之前調用createMyDialog()?

感謝

+0

dinamical時間叫什麼名字?真的嗎? ;) –

回答

5

如果你想改變對話框設置(文本等),你需要做的是在onPrepareDialogMethod它會在您每次調用showDialog方法

0

這可能是值得一試。我沒有測試過它。如果將textview設置爲其內容,則可以在對話框中設置一個ID。

TextView text = new TextView(this); 
ViewGroup.LayoutParams vp = new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT, 
     LayoutParams.WRAP_CONTENT); 
text.setLayoutParams(vp); 
text.setText("HI"); 
text.setId(1005);  
dialog.setContentView(text); 

因此,下次嘗試更新textview時,您可能可以使用該ID訪問它。

((TextView)dialog.getWindow().getDecorView().findViewById(1005)) 
     .setText("New Text");