使用任何一个寻呼机适配器时,获取当前片段是非常困难的。但是,使用FragmentPagerAdapter,您可以查找标记为"android:switcher:" + viewId + ":" + id
的片段。
不幸的是,似乎没有FragmentStatePagerAdapter的标准标记。 A related question提供了一些答案,建议手动保留片段的缓存,这些片段在进行轮换时被指出是不合适的:底层适配器将状态存储在一个包中并在创建时恢复它,从而导致任何简单的缓存解决方案失败。
答案 0 :(得分:0)
我找到了更好的解决方案。 <{1}}无法从我所知道的内容中正确实施。
我的代码之前启动了一个对话框,然后回调到onAttach对话框存储的Activity。然后活动需要找到正确的片段,这是有问题的。
正确的解决方案是首先在新的对话框片段上调用setTargetFragment():
getCurrentFragment()
然后在onAttach()中,只需将其用作侦听器。
SelectProblemDialogFragment f = SelectProblemDialogFragment.newInstance(args);
f.setTargetFragment(this, 0);
f.show(getFragmentManager(), "select_problem_dialog_fragment");