我有3个碎片说FragmentA,FragmentB和FragmentC。我在FragmentA上有一个按钮。我希望打开一个选择器,就像点击FragmentA的按钮一样,所有用户都可以从FragmentB和FragmentC中选择。
通过选择器,我的意思是intent.createChooser()
,它为用户提供了从列表中选择意图的选项。
答案 0 :(得分:2)
Fragment
应始终设计为可重用,因此,您不应编写直接引用另一个Fragment
Fragment
的代码。换句话说,父ActivityA
应该为您管理您的Fragment交易。
我们假设ActivityA
是FragmentA
,FragmentB
和FragmentC
的父活动。您可以做的是在片段内定义一个回调接口,并要求主机活动实现它。当活动通过接口收到回调时,它可以根据需要与布局中的其他片段共享信息。如果您只处理一个父级活动来管理所有三个Fragments
,则无需创建新的Intents
来启动新的Activity
...而是您的父级{ {1}}应该使用ActivityA
,并在收到事件回调时使用所需的片段填充其布局。
有大量examples演示如何在Android开发者网站上正确使用FragmentManager
。我建议你也看一下文档here。
最后,我想指出,标签式设计似乎适合您的情况(例如,使用三个标签填充Fragment
,以便在ActionBar
s之间快速导航。有关详细信息,请查看此sample code。
如果有帮助,请告诉我!如果没有,请发表评论,我可以澄清一下。