Activity ---> Fragment
1.设置Bundle
- 在Activity中,通过设置如下的方法。
Bundle args = new Bundle();
args.putString("name", name);
BaseFragment fragment = new CollectionFragment();
fragment.setArguments(args);
- 在Fragment中,通过
Bundle bundle = getArguments();
获取参数
Fragment ---> Activity
传递数据到承载Fragment的Activity
- Fragment中通过
getActivity()
方法获取到Activity,通过 activity.xxx()方法来设置数据。
传递数据到新的 Activity
没有数据返回
Fragment给Activity传数据通过startActivity()
方法既可,数据存入intent之中。有数据返回
如果 Fragment 给 Activity 中传递数据需要有回调方法的时候,
- Fragment之中需要调用
this.startActivity()
方法,不能用getActivity.startActivity()
方法。 - Activity 中 setResult
Intent intent = getIntent();
intent.putExtra("cityNameFromActivity",localtion);
setResult(ProprietaryTradingFragment.CITYREQUESTCODE,intent);
- Fragment 中重写
onActivityResult()
方法,进行数据接收。
如果Fragment所在的Activity中已经有了onActivityResult()
方法,Fragment中的onActivityResult()
方法一定要加上super.onActivityResult(requestCode, resultCode, data);
方法
Fragment ---> Fragment
参考文章
1.启舰