fragment 总结
2018-04-14 本文已影响0人
陆元伍
1、fragment生命周期
onAttach onCreate onCreateView onActivityCreated onStart onResume onPause onStop onDestroyView onDestroy onDetach
image2、fragment与activity传值
activity传值给fragment:
- 通过Bundle
Bundle bundle = new Bundle();
bundle.putString(Constant.INTENT_ID, productId);
Fragment fragment = new Fragment();
fragment.setArguments(bundel);
-
在宿主Activity中定义方法,将要传递的值传递到Fragment中,在Fragment中的onAttach方法中,获取到这个值
(1)宿主activity中的getTitles()方法 public String getTitles() { return "hello"; } (2)Fragment中的onAttach方法 public void onAttach(Activity activity) { super.onAttach(activity); //通过强转成宿主activity,就可以获取到传递过来的数据 titles = ((MainActivity) activity).getTitles(); }
fragment传值给activity:
-
Handler方式,在activity中定义Handler,然后在fragment中获取到activity的handler,发送消息
-
广播
-
EventBus
-
在fragment中定义接口,然后activity中实现该接口
//MainActivity实现MainFragment开放的接口
public class MainActivity extends FragmentActivity implements FragmentListener{
@override
publicvoidtoH5Page(){ }
}
public class MainFragment extends Fragment{
public FragmentListener mListener;
//MainFragment开放的接口
public static interface FragmentListener{
//跳到h5页面
void toH5Page();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
//对传递进来的Activity进行接口转换
if(activity instance FragmentListener){
mListener = ((FragmentListener)activity);
}
}
...其他处理
}