在DialogFragment中我有一个Listener,我在其中使用回调,如:
OnDoneListener caller = (OnDoneListener)getActivity();
caller.done();
但是,我不想在FragmentActivity中实现OnDoneListener,而是想在Fragment中实现它。因此,我正在寻找类似的东西:
OnDoneListener caller = (OnDoneListener)getFragmentManager().getFragment(); //made up
我找到了findFragmentById()或者findFragmentByTag(),但我希望它更通用......或者我如何获得Id或Tag?我可以从容器或父母那里得到它吗?
修改 只是为了说清楚。我的DialogFragment应尽可能重用。因此,我不想要任何硬编码ID和TAG。我只想引用我的父(调用)Fragment,它需要实现OnDoneListener。
答案 0 :(得分:3)
我自己找到了解决方案:
CallerFragment:
mCalledFragment = new CalledFragment();
mCalledFragment.setTargetFragment(this, 0);
CalledFragment:
CallerFragment caller = (CallerFragment)getTargetFragment();
caller.callback();