2012-01-19 25 views
1

我有3片段说FragmentA,FragmentB和FragmentC。我在FragmentA上有一个按钮。我想要打开一个选择器,就像点击FragmentA的按钮时,所有用户都可以从FragmentB和FragmentC中进行选择。如何在Android中为碎片创建选择器?

通过选择器我的意思是像一个intent.createChooser()它给出的选项,供用户从列表中选择一个意图。

回答

2

Fragment s应始终设计为重复使用,因此,您不应编写直接引用另一个FragmentFragment的代码。换句话说,家长ActivityA应该为您管理您的Fragment交易。

我们假设ActivityAFragmentA,FragmentBFragmentC的父级活动。你可以做的是在片段中定义一个回调接口,并要求主机活动实现它。当活动通过接口接收回调时,它可以根据需要与布局中的其他片段共享信息。如果你只曾经与一个父活动涉及到管理所有三个Fragments,你不会需要创建新的Intents开始新Activity小号...相反,你的父母ActivityA应利用FragmentManager,并简单地填写其布局当收到事件回调时所需的片段。

有大量的examples演示如何在Android开发人员网站上正确使用Fragment。我建议你也看看文档here

最后,我只想指出,它似乎像一个标签式设计将适用于您的情况(即填写ActionBar与三个标签,允许在Fragment之间快速导航)。看看这个sample code欲知更多信息。

让我知道是否有帮助!如果没有,留下评论,我可以澄清。

+0

嗨,谢谢你的所有信息。我完成了与您建议的完全相同的方式(管理活动中的片段)。但我有一个按钮说共享...所以我想显示用户点击时与facebook和twitter选项的对话框。我不能使用操作栏作为它的需求/设计。我必须坚持设计。你可以请这个帮助 – Nik

+0

你有没有考虑过使用DialogFragment的事件回调方法,可以列出你需要的选项? Activity将监听DialogFragment回调,然后启动相应的Activity或Application(Facebook,Twitter等)。 –

+0

我正在尝试相同的...谢谢拉吉 – Nik