`
苗振忠
  • 浏览: 60011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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中某个控件的属性或者数据了
分享到:
评论

相关推荐

    (Activity与Fragment之间进行传值

    而Fragment则是一个可插入到Activity中的部分用户界面,它有自己的生命周期,可以在不同Activity之间复用,增强了应用的灵活性和模块化。 在Activity与Fragment之间进行传值主要有以下几种方法: 1. **通过Intent...

    Fragment 与 Activity之间传递数据

    Fragment具有自己的生命周期,可以有自己的布局,也可以处理用户事件。它可以在不同的Activity之间重用,使得应用在不同屏幕尺寸和配置下都能保持良好的用户体验。 Fragment与Activity之间的通信是Android开发中的...

    Fragment之间传值的案例

    2. 生命周期:在Fragment的生命周期方法中正确处理数据传递,防止因Fragment的状态变化导致数据丢失。 3. 协调管理:在使用接口或EventBus时,确保正确注册和注销,避免内存泄漏和未处理的事件。 三、示例代码分析 ...

    Activity和Fragment之间相互传值和调用方法

    但需要注意,只有在Fragment的状态已知(如onActivityCreated()之后)并且与Activity的生命周期同步时,才能安全地调用Fragment的方法。否则,可能会遇到空指针异常。 最后,我们来谈谈回退栈(BackStack)。在...

    viewpager+fragment无限滑动+传值给fragment

    总之,实现"viewpager+fragment无限滑动+传值给fragment"需要理解`ViewPager`的工作原理,利用第三方库实现无限循环效果,掌握如何在`Activity`和`Fragment`之间传递数据,并熟悉`Fragment`的生命周期和事件通信机制...

    接口关联方式 Fragment之间通过Activity相互传值和调用方法

    本篇将详细探讨Fragment之间如何通过Activity进行传值和调用方法,以及接口关联的实现方式。 首先,让我们了解Fragment和Activity的基本交互。Fragment有自己的生命周期,但它的创建和销毁都受到所在Activity的控制...

    Android-Fragment和Activity的传值通例子

    本篇将深入探讨Fragment与Activity之间的数据传递,以及通过实际例子来说明这一过程。 一、Fragment与Activity的数据传递原理 1. Intent传递:在Activity之间,我们通常使用Intent对象来传递数据,然而,由于...

    Activity间的传值

    总结,Activity间的传值是Android开发中的基本技能,理解并熟练掌握Intent、Bundle、startActivityForResult()等方法,以及何时使用静态变量、全局对象和事件总线,能够帮助开发者构建更高效、可维护的应用程序。

    Fragment与Activity通信的小例子

    Fragment可以看作是Activity的一部分,具有自己的生命周期和UI,而Activity则充当着整个应用窗口的角色,管理多个Fragment的交互。在这个"Fragment与Activity通信的小例子"中,我们将深入探讨如何使用回调接口实现...

    在Activity之间传值

    "在Activity之间传值"是一个核心的技能,涉及到Intent、 Extras、Parcelable接口等多种方式。下面我们将详细探讨这些方法。 1. **Intent**: Intent是Android中的一个关键概念,它用于启动一个新的Activity或服务,...

    使用fragment在activity中传值的例子

    记住,不论选择哪种方式,都要注意在Activity和Fragment的生命周期方法中正确处理数据。例如,确保在Fragment被销毁时释放资源,防止内存泄漏。同时,当数据在多个组件间共享时,应考虑数据的一致性和更新同步问题。...

    fragment之间用eventbus进行传值调用方法

    EventBus是一个发布/订阅事件总线库,它简化了Android组件间的通信,避免了过度依赖于生命周期的方法回调和接口传递。本文将详细介绍如何在Fragment之间使用EventBus进行数据传递和方法调用。 首先,我们需要在项目...

    安卓fragment与界面传值

    动态切换界面在Android应用中很常见,我们可以使用FragmentManager来管理Fragment的生命周期,添加、替换或移除Fragment。以下是一个简单的例子: ```java // 在Activity中 FragmentManager fragmentManager = ...

    首页跳转到Activity B,在Activity B中改变首页的Fragment

    1. **Fragment**:Fragment是Android中的一个组件,它可以被视为Activity的一部分,有自己的生命周期和UI。在一个Activity中可以包含多个Fragment,以实现更复杂的布局和功能。 2. **singleTask**启动模式:这是...

    fragment与activity

    在【Fragment与Activity间跳转】时,通常使用`FragmentManager`和`FragmentTransaction`来管理Fragment的生命周期。例如,要将一个Fragment添加到Activity中,我们首先需要实例化Fragment,然后使用`FragmentManager...

    Android的Fragment

    "Android之静态Fragment生命周期"和"Android之动态Fragment生命周期"将深入讲解每个生命周期方法的用途和调用时机。 5. **Activity与Fragment的传值** - 在"Android之Activtity和Fragment传值"中,会介绍如何使用...

    Frament的使用和传值

    本教程将详细介绍Fragment的使用以及如何在Fragment之间传递数据,适合初学者入门。 **一、Fragment的基本使用** 1. **添加Fragment到Activity** 在布局XML文件中,通过`&lt;fragment&gt;`标签将Fragment嵌入到...

    Android应用源码之(Activity跳转与操作)-IT计算机-毕业设计.zip

    源码可能涉及到如何在Activity中添加Fragment,以及Fragment之间的通信和数据传递。 七、权限管理 如果Activity涉及到系统敏感操作,如读写文件、访问网络等,需要在AndroidManifest.xml中声明相应权限。源码中...

    安卓页面相互传值

    但这两种方法不适用于生命周期短暂的数据,因为当Activity被销毁后,静态变量或Application对象中的数据可能依然存在,可能导致内存泄漏。 6. Fragment间的数据传递: Fragment之间的数据传递类似,可以通过...

    解决ActivityGrop页面切换和传值的问题

    `Fragment`可以像`Activity`一样拥有自己的UI和生命周期,而且更容易管理,特别是在处理回退栈和数据传递时。 在`Fragment`中,页面切换通常通过`FragmentManager`的`beginTransaction()`方法来实现,而数据传递则...

Global site tag (gtag.js) - Google Analytics