2012-03-29 20 views
0

我正在使用我爲Android應用程序構建的一些自定義對話框類。當這些對話框類中的一個被調用時,它顯示對話框,用戶對對話框中的小部件進行更改,然後這些更改會在對話框關閉後影響調用活動。在Android中使用對話框

我已經開發了一些解決方案來獲得這個功能......但我喜歡整潔的代碼,而且我玩過的所有工作都對我沒有吸引力(靜態變量,返回語句等等)。所以我想也許我可以在我的調用活動的OnResume或ReStart方法中添加一些語句來完成必要的工作。當我關閉對話框時沒有任何反應,所以我不相信當對話框被解除時(即使在開始對話框時首先出現OnPause),調用任何活動生命週期的OverRide方法。

我查看了Andoid文檔,看到我可以在自定義對話框類中使用對話框,並使用/覆蓋那裏的各種方法。在我看來,這看起來像是一個炮彈殺死一隻蒼蠅(特別是因爲我已經準備好了一個能夠正常工作的工作)。

所以,基本上我想知道是什麼方法被調用(無論是從對話框或從對話開始的活動)重新啓動調用對話框的活動。 < - 這句話對我來說毫無意義......讓我用圖表來描述(如果完全必要,我可以給出僞代碼;但我不明白這會如何幫助了)

調用活動創建對話框 - >(然後通過某種方法將調用活動變灰) - >對話框顯示 - >等等等等 - >對話框被取消 - >(通過某種方法恢復調用活動)

兩種方法在括號之上,它們是什麼? (後者與我的興趣特別相關)感謝您的時間。

回答

0

我不完全確定它是如何進行灰色背景的,但有一些聽衆可以實現,並在其中放置相關代碼,OnDismissListener,OnCancelListener和OnShowListener(需要API等級8)。

實施例(對於其他收聽相同的語法)

Dialog d = new Dialog(this); 
    d.setOnCancelListener(new DialogInterface.OnCancelListener() { 

     @Override 
     public void onCancel(DialogInterface dialog) { 
      // do stuff 

     } 
    });