fragment 总结

1、fragment生命周期

onAttach onCreate onCreateView onActivityCreated onStart onResume onPause onStop onDestroyView onDestroy onDetach

fragment 总结_第1张图片
image

2、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);
               }
          }
          ...其他处理
      }

你可能感兴趣的:(fragment 总结)