一.宿主Activity与Fragment传数据
1.在Fragment未创建之前可以将数据存入一个bundle中 通过setArguments(bundle)将bundle存入启动的Fragment中,在Fragment 的onCreatView中通过
getArguments(bundle)来获取到传入的数据。
2.在Fragment创建之后,可以在Fragment中声明一个public方法来在宿主Activity中调用传入数据。
二.Fragment与宿主Activity传输数据
通过声明一个内部回调接口,再由包含该Fragment的Activity来实现该接口宿主Activity
Fragment中实现接口:
public interface CallBack{ public void getMsg(String msg); } public void getData( CallBack callBack){ this.callBack = callBack; }
在Activity中调用Fragment.getData(new CallBack(){
public void getMsg(String msg){
dosomething();
}
});
之后Fragment通过事件来触发callBack.getMsg("msg");来讲数据回调给Activity
三.两个Fragment之间传数据
1.当其中有一个没有创建时通过传入bundle来创建
2.当两个Fragment都已经显示时如果fragment1要给fragment2传数据,则一通过接口回调先传数据给宿主Activity以后Activity再通过fragment2实现的public方法将数据传入。