2011-12-05 27 views
2

我目前有一个应用程序,严重依赖于Intents和开始活动前给予他们的额外资讯。在调用web服务时使用这些额外功能,这反过来又提供了需要显示的内容你可以给片段上的替代品吗?

我试图将该模型转换为静态Fragment(让我们称之为播放器)在我的底部屏幕,另一个Fragment(让我们称之为内容),它会显示主要内容。通过选择主屏幕上的选项,其他内容将通过替换内容Fragment显示。

但是,这些新的Fragments目前是Intents,如此大量依赖临时演员。 有没有一种方法可以用新的代替Fragment,但仍然可以添加额外功能?

如果是这样,让我们​​说,我有以下的代码:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
     ft.replace(R.id.fragment_holder, new MusicAlbumList(), "albumlist"); 
     ft.commit(); 

我怎么会在额外添加到MusicAlbumList?

如果这是不可能的,在强制关闭之前,由于缺少重要数据,我将如何获取当前正在通过额外数据传入我的新Fragment的数据?

回答

8

设定值,也可以做到这一点

MusicAlbumList fragment = new MusicAlbumList(); 
Bundle args = new Bundle(); 
args.putString("StringName","Value here"); 
fragment.setArguments(args); 

然后做你的替换的东西。然后在片段onStart或onCreate调用this.getArguments();来拉动捆绑包,然后让你的额外出去。

2

变化MusicAlbumList从默认的构造函数构造一个与像新MusicAlbumList参数(INT ARG1,...),并通过你想通过构造

+0

这是我的第一个想法。猜测我将不得不重写所有的类到碎片然后(目前使用FragmentActivities) –

+0

我一直在使用上述方式相当成功 – pankajagarwal

+0

好吧,谢谢,我会给这个旋转。 –

相关问题