Fragment的生命周期以及跟Activity之间互相传值小总结

Fragment的生命周期

生命周期:    onAttach() 当fragment被绑定到Activity时调用
     onCreate() 创造一个fragment
     onCreateView() 返回一个自定义的视图
     onActivityCreated() Activity的onCreate()返回以后
     onStart() 启动fragment
     onResume() 获得焦点
     onPause() 失去焦点
     onStop() 停止fragment
     onDestroyView() 销毁视图
     onDestroy() 销毁fragment
     onDetach() 断开与Activity之间的联系

其中onAttach()与onDetach()对应,onCreateView()与onDestroyView()对应

Fragment与Activity之间互相传值问题

1,从Activity传值到Fragment中:
需要一个自定义的布局以及一个继承了Fragment的类(onCreateView中返回一个 自定义布局的视图)
先创建一个Bundle:Bundle bundle=new Bundle();
然后把数据放入Bundle中:bundle.put<数据类型>(键,值);
创建一个继承了Fragment的类的对象
然后用这个对象.setArguments(bundle);
再新建一个事务FragmentTransaction,开始这个事务
然后用Fragment的对象替换掉Activity里的某个容器,提交下事务
在继承了Fragment的类中,重写一下onAcitivityCreated方法
然后用一个Bundle对象接收一下Activity传过来的Bundle值(getArguments)
通过bundle的键,来获得bundle的值,然后实现了从Activity中传值到 Fragment中

2,从Fragment中传值到Activity
使用的方法是接口的回调:
新建一个接口,在接口中定义一个方法,并给一个所需的数据的数据类型的 参数
在Fragment中,设置一个接口的全局变量,重写onAttach()方法
把方法中的activity强转为接口类型用全局变量的接口接收下
在事件中调用接口的方法,并把需要传的数据作为该方法的参数
在Activity中,实现该接口并重写里面的方法,在重写的方法里面,获得的参 数的值就是从Fragment中传过来的

3,从Fragment中获取Activity中的某个控件的某些属性或数据
在Fragment中,重写onActivityCreated方法
然后通过getActivity()方法来获得Activity的视图,从来根据ID来寻找控件并获 得该控件得属性或者数据

4,从Activity中获取Fragment中某个控件的属性或者数据
在Activity中,通过FragmentManager来寻找Fragment的视图
manager.findFragmentById(容器).getView()
然后通过该视图即可获得该Fragment中某个控件的属性或者数据了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值