2014-07-27 41 views
1

我有3個自定義對話框(DialogFragment)。所有的都沒有取消,因爲它是必要的,用戶不能關閉它們。第一個對話從第二個開始,第二個從第三個開始。現在我想回到以前的對話框中,如果我使用的backclick。在這一刻,我有兩個選擇,但兩者都不能正常工作的真精:onBackpressed DialogFragment

  • 我從一個對話框中的一個新的開始,但從來沒有致電解僱。 - >所以在下一個對話框的背景中始終是前一個對話框的視圖

  • 我打電話解僱,如果我開始下一個對話框,但他不會返回到前一個對話框,但關閉對話。

我能做些什麼,以啓動新的對話框,所以,這第一個是不可見的,但如果我點擊返回,對話框又是可見的?

非常感謝幫助:))

回答

5

當您從第二個對話框推進到第三個可以關閉第二個,這樣你就不會看到它的第三個。

如果你以後需要回到第二個對話框,你可以直接關閉第三個,當你從第一個對話框,第二個對話框去,你開始用同樣的方式之前重新啓動它。

爲了覆蓋你需要做的是這樣的一個對話的onBackPressed:

dialog.setOnCancelListener(new DialogInterface.OnCancelListener() 
{ 
    @Override 
    public void onCancel(DialogInterface dialog) 
    { 
     // OVERRIDE CODE 
    } 
}); 

所以工作流將是這樣的

  1. firstDialog - > startSecondDialog
  2. firstDialog .dismiss
  3. secondDialog - > startThirdDialog
  4. secondDialog .dismiss

,然後如果你需要回到你做:

  1. thirdDialog - > startSecondDialog
  2. thirdDialog.dismiss

,以此類推,直到你回來的第一次對話。

我希望這對你有意義,如果不是,請給我們一些代碼,以便我們可以幫助你的項目相關的更多細節:)