這是android開發(fā)必須遇到的問題,那么今天我們來探討一下。
Activity傳值給Fragment ,通過Bundle。
方法一: 一般Framgent都不是單獨(dú)存在的,所以假設(shè)如果我們從ActivityA跳轉(zhuǎn)到FragmentA ,而FragmentA的宿主是MainActivity。
?注:Fragment可以根據(jù)宿主Activity,Intent直接跳轉(zhuǎn)到其他Activity,而activity則不能直接跳轉(zhuǎn)到Fragment,只有先跳轉(zhuǎn)到宿主Activity.
第一步:ActivityA? Intent 直接跳轉(zhuǎn)到 MainActivity,,Intent是攜帶Bundle對象跳轉(zhuǎn)的。(此處代碼省略................)

第二步:MainActivity獲取ActivityA傳遞的Intent對象,在傳遞給FragmentA
//獲取ActivityA傳遞的Intent的Bundle
Intent mIntent =getIntent();
Bundle mBudle =mIntent.getExtras();
獲取到了那么怎么給Fragmeng呢?
方式一:
MainActivity 發(fā)送方法:,
//將Bundle對象通過setArguments 設(shè)置給要傳遞的Fragment,
............此處你們自己寫自己的FragmentManager和FragmentTransaction,根據(jù)個(gè)人情況
MyFragment myFragment =new MyFragment();
myFragment.setArguments(mBudle?); ?//看這里
FragmentTransaction.add(R.id.....,myFragment?,xxxx);
FragmentTransaction.commit();
FramentA接收方法:

方式二:
MainActivity定義公共返回值方法
public static Bundle ?getBundle(){
return ?mIntent;
}
Fragment 接收方法:
Bundle mBundle =MainActivity.getBundle();
if(mBundle ?!= null){
.............獲取值之后的方法
}
Fragment傳值給 Activity 通過 Bundle。和上面類似
思路:在Framgment中定義接口回調(diào)給傳遞給Activity?
我一般將這部分代碼寫在BaseFragmeng中
直接上圖了:
fragmeng操作

我這里將Fragment傳給activity的類型是object,你可以換成Bundle
注意還有一步如下圖:

Activity中操作
implements BaseFragment.FragmentCallBack
重寫傳參方法,接受fragmeng數(shù)據(jù)

注意 :接受的數(shù)據(jù)是 param[0] 獲取的
完畢!