第五单元 Fragment高级进阶

本文聚焦Android开发中Fragment的高级进阶内容,包括Fragment的回退栈操作,以及Fragment之间、Fragment与Activity之间的传值方法,如使用Handler、接口回调,还介绍了通过getArguments()和setArguments()传值,同时给出了案例实现和相关代码示例。

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

第5天Fragment高级进阶

  • 一.Fragment的回退栈
  • 二.Fragment之间的传值
    方式一.Fragment之间的传值:Handler
    方式二:Fragment之间的传值:接口回调
  • 三.案例实现
  • 四.多个fragment嵌套

一.Fragment的回退栈

Fragment2 f2 = new Fragment2();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction tx = fm.beginTransaction();
tx.replace(R.id.fl, f2);
//将当前的事务添加到了回退栈
tx.addToBackStack(null);

二.Fragment之间的传值

主要涉及到一个方法是getArguments()和setArguments(). 一个设置属性值,一个去取属性值.

步骤: 要传的值,放到bundle对象里; 在Activity中创建该Fragment的对象fragment,通过调用
fragment.setArguments()传递到fragment中; 然后更新fragment.
在该Fragment中通过调用getArguments()得到bundle对象,就能得到里面的值。
activity的xml的布局文件

在这里插入图片描述
fragment的xml布局文件
在这里插入图片描述
完整版的fragment
在这里插入图片描述
完整版的Activity
在这里插入图片描述

fragment 给 activity传值

第一种:
在Activity中调用getFragmentManager()得到fragmentManager,,调用findFragmentByTag(tag)或者通过findFragmentById(id)

FragmentManager fragmentManager = getFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(tag);

第二种:
通过回调的方式,定义一个接口(可以在Fragment类中定义),接口中有一个空的方法,在fragment中需要的时候调用接口的方法,值可以作为参数放在这个方法中,然后让Activity实现这个接口,必然会重写这个方法,这样值就传到了Activity中.

Activity中的代码
在这里插入图片描述
Activity中的xml文件
在这里插入图片描述
fragment中的代码
在这里插入图片描述
fragment的xml文件
在这里插入图片描述

fragment 给 fragment 传值

第一种:
动态创建的fragment通过findFragmentByTag得到另一个的Fragment的对象,这样就可以调用另一个的方法了。
静态创建的fragment通过findFragmentById得到另一个的Fragment的对象,这样就可以调用另一个的方法了。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值