1

在 DialogFragment 我有一个侦听器,我在其中使用如下回调:

OnDoneListener caller = (OnDoneListener)getActivity(); 
caller.done();   

但是,我不想在 FragmentActivity 中实现 OnDoneListener,而是在 Fragment 中实现它。因此,我正在寻找类似的东西:

OnDoneListener caller = (OnDoneListener)getFragmentManager().getFragment(); //made up

我找到了 findFragmentById() 或 findFragmentByTag() 但我希望它更通用......或者我怎样才能获得 Id 或 Tag?我可以从容器或父母那里得到它吗?

编辑: 只是为了说清楚。我的 DialogFragment 应该尽可能地重复使用。因此我不想要任何硬编码的 ID 和标签。我只想参考需要实现 OnDoneListener 的父(调用)片段。

4

1 回答 1

3

我自己找到了解决方案:

调用者片段:

mCalledFragment = new CalledFragment();
mCalledFragment.setTargetFragment(this, 0);

调用片段:

CallerFragment caller = (CallerFragment)getTargetFragment();
caller.callback();
于 2012-07-19T18:52:36.403 回答