• 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中某个控件的属性或者数据了
  • 相关阅读:
    docker容器网络查看
    资源模型、资源管理
    kubectl命令设置在元集群上
    K8S容器网络
    Kubernetes部署Prometheus+Grafana以及HPA实验测试
    Shell 脚本之 MySQL 一键安装及基本配置(几分钟搞定)
    安装 Flannel 报错:network plugin is not ready: cni config uninitialized
    uniapp h5页面引入企业微信js-sdk
    判断IP地址及闰年,并写出相关测试用例
    第一个自动化测试案例 java+selenium
  • 原文地址:https://www.cnblogs.com/miaozhenzhong/p/5930966.html
Copyright © 2020-2023  润新知