1涕滋、fragment生命周期
onAttach onCreate onCreateView onActivityCreated onStart onResume onPause onStop onDestroyView onDestroy onDetach
image
2叽掘、fragment與activity傳值
activity傳值給fragment:
- 通過(guò)Bundle
Bundle bundle = new Bundle();
bundle.putString(Constant.INTENT_ID, productId);
Fragment fragment = new Fragment();
fragment.setArguments(bundel);
-
在宿主Activity中定義方法穷遂,將要傳遞的值傳遞到Fragment中晌畅,在Fragment中的onAttach方法中玉组,獲取到這個(gè)值
(1)宿主activity中的getTitles()方法 public String getTitles() { return "hello"; } (2)Fragment中的onAttach方法 public void onAttach(Activity activity) { super.onAttach(activity); //通過(guò)強(qiáng)轉(zhuǎn)成宿主activity,就可以獲取到傳遞過(guò)來(lái)的數(shù)據(jù) titles = ((MainActivity) activity).getTitles(); }
fragment傳值給activity:
Handler方式阻星,在activity中定義Handler朋鞍,然后在fragment中獲取到activity的handler,發(fā)送消息
廣播
EventBus
在fragment中定義接口妥箕,然后activity中實(shí)現(xiàn)該接口
//MainActivity實(shí)現(xiàn)MainFragment開放的接口
public class MainActivity extends FragmentActivity implements FragmentListener{
@override
publicvoidtoH5Page(){ }
}
public class MainFragment extends Fragment{
public FragmentListener mListener;
//MainFragment開放的接口
public static interface FragmentListener{
//跳到h5頁(yè)面
void toH5Page();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
//對(duì)傳遞進(jìn)來(lái)的Activity進(jìn)行接口轉(zhuǎn)換
if(activity instance FragmentListener){
mListener = ((FragmentListener)activity);
}
}
...其他處理
}