android - 拦截 DialogFragment dismiss 内部 Activity

标签 android android-fragmentactivity android-dialogfragment

我有一个 Activity

public class ShowFileActivity extends FragmentActivity

当发生一些事件时,这个类调用一个DialogFragment

public class ConfirmDialog extends DialogFragment

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

dismiss()

然后回到 ShowFileActivity。 否则,如果用户按确定,在进行一些操作后,在对话框中调用关闭后,我将返回到 ShowFileActivity 的父 Activity 。 有办法吗? DialogFragment 是否向他的父 View 发起任何事件?

最佳答案

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

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

另一种(更奇特的)方法是使用事件总线,例如 ottogreenrobot .

关于android - 拦截 DialogFragment dismiss 内部 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15647253/

相关文章:

java - 我无法应用 gradle 6.x 插件

c# - 无法重新膨胀 fragment 对话框 Xamarin 和 C#

Android如何防止特定对话框 fragment 的屏幕旋转

java - NullPointerException 尝试获取 DialogFragment 的 PositiveButton

android - Android中的全屏DialogFragment

java - “没有这样的表”SqliteDatabase

java - 在android中将字符串转换为bigdecimal

java - 如何在 Android Studio 中将 Activity 转换为 fragment ?

java - 如何调用 onCreateView 方法或刷新我的 fragment ?

android - 将按钮添加到图形 Canvas