Android开发者教程建议我使用片段的宿主活动来传递数据等等,那么为什么有一个设置/获取目标片段方法呢?
到目前为止,我的应用程序包含一个主机活动和一个片段,其中有一个启动按钮DialogFragment
,其中有一个按钮可以启动另一个DialogFragment
. Using setTargetFragment/getTargetFragment
不过,这整个考验有点令人困惑,所以我正在考虑重新实现,让我的主要活动处理DialogFragment.show
通过我的主片段的自定义界面的方法。
这是正确的思维方式吗?或者说使用没有什么坏处setTargetFragment
?谁能提供使用它的好和坏的例子?
此外,您最终可能会遇到在片段管理器中找不到目标片段的异常情况。如果在旋转(或其他配置更改)后,在添加调用者片段时您的目标片段不会被读取到片段管理器,则会发生这种情况。
想象一下您有某种确认片段,您可以从中添加MainFragment
as so:
ConfirmationFragment frag = new ConfirmationFragment();
frag.setTargetFragment(this, 0);
getFragmentManager().beginFragmentTransaction().add(R.id.container, frag).commit();
现在,在某个确认按钮上,单击您调用的方法MainFragment
通过致电:
((MainFragment)this.getTargetFragment()).onUserSelectedGoodButton();
这非常漂亮且简单,但是如果您出于某种原因旋转屏幕ConfirmationFragment
将被添加到FragmentManager
before MainFragment
,会抛出异常,说明在片段管理器中没有找到目标片段
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)