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

本文详细介绍了Android中Fragment的生命周期,包括从onAttach到onDetach的各个阶段,并讲解了Fragment与Activity之间如何传递数据,包括从Activity传值到Fragment、从Fragment传值到Activity以及相互获取控件属性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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中某个控件的属性或者数据了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值