【发布时间】:2020-02-16 02:09:57
【问题描述】:
在我的应用程序中,我有一个片段可以打开一个对话框片段。在我的对话框片段中,我从用户那里获取一些保存在静态类中的设置,但我需要一个侦听器来通知我的片段对话框已关闭。
我使用此链接stackoverflow question 的第一个答案中的代码,但这部分代码不起作用,因为我有一个片段而不是一个活动。 onDismiss 方法在 dialogfragment 中调用,但 if 语句失败,因此不调用片段。我试图用 getFragmentManager 和 getParentFragment 和 get/setTargetFragment 替换该部分,但不起作用。
有人可以帮帮我吗?
public void onDismiss(final DialogInterface dialog) {
super.onDismiss(dialog);
// code I've tried
final FragmentManager fragment = getFragmentManager();
if (fragment instanceof DialogInterface.OnDismissListener) {
((DialogInterface.OnDismissListener) fragment).onDismiss(dialog);
}
// original answer code
/*final Activity activity = getActivity();
if (activity instanceof DialogInterface.OnDismissListener) {
((DialogInterface.OnDismissListener) activity).onDismiss(dialog);
}*/
}
【问题讨论】:
-
你试过接口回调了吗?
-
我是 Android 新手,你能解释一下吗?
-
使用
final Fragment fragment = getParentFragment()。并检查父片段是否是实现 onDismissListener 的片段。如果没有,请检查您的片段树。
标签: android fragment listener dismiss