我需要处理 DialogFragment 的结束(在调用 .dismiss 之后) - 例如,我会在关闭后“包含”片段的活动中显示一个 toast。
我该如何处理事件?
我需要处理 DialogFragment 的结束(在调用 .dismiss 之后) - 例如,我会在关闭后“包含”片段的活动中显示一个 toast。
我该如何处理事件?
onDismiss()
在您的 DialogFragment 中覆盖,或setOnDismissListener()
在您正在构建片段的代码块中使用。
我遇到了类似的问题,但我想通知另一个有关对话框关闭的活动(而不是创建和显示对话框的活动)。
尽管您可以onDismiss()
按照 Austyn Mahoney 的建议覆盖 DialogFragment 中的方法,但您不能使用setOnDismissListener()
,因为 DialogFragment 根本不提供这种方法(根据:Android Developers DialogFragment Reference)。
但是还有另一种很好的方法可以通知任何其他有关对话框的活动dismiss,(我在那里找到了它:DialogFragment 和 onDismiss),它来了:
首先,您应该使您的活动(您要传递有关对话框关闭信息的活动)实现OnDismissListener
:
public final class YourActivity extends Activity implements DialogInterface.OnDismissListener {
@Override
public void onDismiss(final DialogInterface dialog) {
//Fragment dialog had been dismissed
}
}
再次根据Android Developers DialogFragment Reference DialogFragment 已经实现OnDismissListener
了 withonDismiss()
方法。这就是为什么你应该覆盖它并在那里调用onDismiss()
你在 YourActivity 中实现的方法:
public final class DialogFragmentImage extends DialogFragment {
@Override
public void onDismiss(final DialogInterface dialog) {
super.onDismiss(dialog);
final Activity activity = getActivity();
if (activity instanceof DialogInterface.OnDismissListener) {
((DialogInterface.OnDismissListener) activity).onDismiss(dialog);
}
}
}