拦截DialogFragment解除内部活动

时间:2013-03-26 20:57:32

标签: android android-fragmentactivity android-dialogfragment

我有一项活动

public class ShowFileActivity extends FragmentActivity

当发生某些事件时,此类调用DialogFragment

public class ConfirmDialog extends DialogFragment

这是一个简单的确认对话框(带有“关闭”和“确定”按钮)。 如果用户按下解除按钮,我打电话

dismiss()

然后回到ShowFileActivity。 否则,如果用户按下确定,在进行了一些操作后,在对话后调用dismiss后,我将返回ShowFileActivity的父活动。 有办法吗? DialogFragment是否将任何事件发送到其父视图?

1 个答案:

答案 0 :(得分:8)

您可以做的是从片段内部调用包含活动的方法。 根据任何其他片段,您可以调用getActivity()来返回包含的活动。

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

另一种(更有趣的)方法是使用ottogreenrobot等事件总线。