5

內解僱我有一個活動攔截DialogFragment活動

public class ShowFileActivity extends FragmentActivity 

當occours一些事件,此類呼叫DialogFragment

public class ConfirmDialog extends DialogFragment 

這是一個簡單的確認對話框(與「解僱」和「確定「按鈕)。 如果用戶按下按鈕辭退,我叫

dismiss() 

,回來ShowFileActivity。 否則,如果用戶按下ok,進行一些操作後,在對話框中調用關閉後,我會返回到ShowFileActivity的父活動。 有辦法做到這一點? DialogFragment是否將任何事件啓動到其父視圖?

回答

8

你可以做的是從片段內調用包含活動的方法。 根據任何其他片段,您可以調用getActivity(),它返回包含的活動。

@Override 
public void onDismiss(DialogInterface dialog) { 
    ShowFileActivity parent = (ShowFileActivity) getActivity(); 
    parent.doWhateverYouWantWhenDialogDismissed(); 
} 

另一(更花式)的方法是使用事件總線如ottogreenrobot