在寫一個小遊戲的過程中碰到這樣一個情況 通過onCreateDialog創建對話框,然後showDialog,顯示分數,比如Score=80,然後開始第二次遊戲,當結束時分數爲100,但是顯示出來的Dialog依舊是Score=80,也就是其中的Message不改變,查了下得到了解決的辦法。
問題在於,在showDialog的過程中,程序不僅僅調用了onCreateDialog方法
第一次執行時:onCreateDialog——>onPrepareDialog
之後只調用onPrepareDialog
這樣問題就變得簡單了,可以通過2種方式去解決:
第一種 根據id判斷dialog
((AlertDialog) dialog).setMessage("custom new message");
第二種 更直接 把原有的dialog去除 強行其調用onCreate
removeDialog(id);