2013-07-24 35 views
4

我有一個初始化Google plus視圖的對話框片段,有時候這些視圖會失敗,所以我想在顯示給用戶之前終止對話框。OnCreateDialog()上銷燬DialogFragment()

如何結束對話框創建過程?從onCreateDialog返回null返回一個Dialog對象壓縮程序。

回答

3

如果你想內onCreateDialog解僱DialogFragment你可以做到以下幾點:

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    setShowsDialog(false); 
    dismiss(); 
    return null; 
} 

無需重寫onActivityCreated()。

+0

我建議返回一個新的Dialog()而不是null,因爲我在某些系統上遇到NPE問題。但總而言之,這也是一個解決方案。 – aviran

3

使用onActivityCreated()解決它使用在OnCreateDialog()之後調用的片段回調。我從onCreateDialog()返回一個有效的對話框,但用dismiss標誌對話框應該被解除。

public void onActivityCreated (Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    if(dismiss) { 
     this.dismiss(); 
    } 
} 
+2

我設法通過在onCreateDialog()本身中調用dismiss()來完成此操作。 –