将参数从活动传递到片段

时间:2015-10-18 14:08:52

标签: android android-fragments android-activity android-asynctask

我有一个调用Web服务的活动,我想将这些结果传递给一个片段。显然,Web服务是由AsyncTask调用的,因此在获得结果之前会加载片段。

如何从活动的AsyncTask中将此参数传递给片段?

3 个答案:

答案 0 :(得分:1)

您可以在Fragment中实现一个方法,并在需要时调用它。对于活动和片段之间的双向通信,请参阅http://developer.android.com/training/basics/fragments/communicating.html

答案 1 :(得分:1)

在片段中设置捆绑包。

Bundle args = new Bundle();
args.putInt("id",value);    
Fragment newFragment = new Fragment();
newFragment.setArguments(args);

在你的片段中获取包

Bundle b = getArguments();
String s = b.getInt("id");

答案 2 :(得分:0)

您可以将AsyncTask移动到片段中。

但是如果你想保持当前的设置,你应该在初始化时保存Fragment引用,并在片段中创建一个以新数据作为参数的公共函数。

因此活动代码可能如下所示:

MyFragment fragment = new MyFragment();
getFragmentManager().beginTransaction().replace(android.R.id.content, fragment).commit();

然后你可以打电话:

fragment.updateData(myNewData);

请确保进行适当的空检查,以确保安全。