Activity ---> Fragment
1.設(shè)置Bundle
- 在Activity中,通過設(shè)置如下的方法迈倍。
Bundle args = new Bundle();
args.putString("name", name);
BaseFragment fragment = new CollectionFragment();
fragment.setArguments(args);
- 在Fragment中,通過
Bundle bundle = getArguments();
獲取參數(shù)
Fragment ---> Activity
傳遞數(shù)據(jù)到承載Fragment的Activity
- Fragment中通過
getActivity()
方法獲取到Activity享完,通過 activity.xxx()方法來設(shè)置數(shù)據(jù)舞终。
傳遞數(shù)據(jù)到新的 Activity
沒有數(shù)據(jù)返回
Fragment給Activity傳數(shù)據(jù)通過startActivity()
方法既可,數(shù)據(jù)存入intent之中旬薯。有數(shù)據(jù)返回
如果 Fragment 給 Activity 中傳遞數(shù)據(jù)需要有回調(diào)方法的時(shí)候晰骑,
- Fragment之中需要調(diào)用
this.startActivity()
方法,不能用getActivity.startActivity()
方法绊序。 - Activity 中 setResult
Intent intent = getIntent();
intent.putExtra("cityNameFromActivity",localtion);
setResult(ProprietaryTradingFragment.CITYREQUESTCODE,intent);
- Fragment 中重寫
onActivityResult()
方法硕舆,進(jìn)行數(shù)據(jù)接收。
如果Fragment所在的Activity中已經(jīng)有了onActivityResult()
方法政模,F(xiàn)ragment中的onActivityResult()
方法一定要加上super.onActivityResult(requestCode, resultCode, data);
方法
Fragment ---> Fragment
參考文章
1.啟艦