您可以在替换时为片段添加额外内容吗?

时间:2011-12-05 09:55:10

标签: android android-fragments android-intent extras

我目前有一个严重依赖Intents的应用程序以及在开始活动之前给予他们的额外内容。在调用webservice时使用附加功能,而webservice又提供需要显示的内容

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

但是,这些新的Fragments目前是Intents,它依赖于附加内容。 有没有办法用新的Fragment替换FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.fragment_holder, new MusicAlbumList(), "albumlist"); ft.commit(); ,但仍然可以添加额外内容?

如果是这样,假设我有以下代码:

{{1}}

如何将附加内容添加到MusicAlbumList?

如果那是不可能的,在由于缺少基本数据而强制关闭之前,如何将当前通过附加内容传递的数据导入我的新片段?

2 个答案:

答案 0 :(得分:9)

或者你可以这样做

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

然后做你的替换。然后在片段onStart或onCreate上调用this.getArguments();来拉取捆绑包,然后将你的额外内容从那里拿出来。

答案 1 :(得分:2)

将MusicAlbumList的构造函数从默认构造函数更改为具有new MusicAlbumList(int arg1,...)等参数的构造函数,并传递要通过构造函数设置的值