fragment 总结

1、fragment生命周期

onAttach onCreate onCreateView onActivityCreated onStart onResume onPause onStop onDestroyView onDestroy onDetach

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);
               }
          }
          ...其他处理
      }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容