写这个博客的缘由是一个同学问我一个问题activityA传递数据到activityB,然后activityB中的fragment想获取这个数据咋办,其实我之前碰到过类似的使用场景,时间比较久远,想着还是归纳一下。
1、getActivity()调用父布局context获取实例
其实比较简单,就是在activityB中写一个方法用public修饰可见,将数据赋值返回这个参数,在fragment中getActivity()获取到activity的实例强制转换为actvityB,然后调用方法,得到参数。这是我觉得理所当然的方法。。。
1、activityB中的代码片
public int test(){
//将参数赋值返回
return param;
}
2、fragment中的代码片
(activityB)getActivity() act=new activityB();
int param=act.test();
2、使用bundle,fragment有个setArguments(bundle)的方法,可以传递数据。推荐使用的方法,这个才是activity向fragment传递数据的正确打开方式。
1、activity传递给fragment数据的方法,通过setArauments就可以了,传递的是bundle数据包。
2、fragment中只要getArguments()就可以得到这个bundle了。
目前我就用这个方式来进行fragment与activity的交互的方法了。这个是基础基础基础。当然网上还写了可以使用handler进行交互,还有通过接口的方式,但是还是getArguments()的方法比较纯正。欧了,水了一篇