当前课程知识点:Android应用开发基础 > 第四章 Android Fragment > 4.1 Fragment碎片组件 > 4.1.2 Fragment与Activity通讯
本节我们介绍Fragment之间的通信
虽然碎片都是嵌入在活动中显示的
可是实际上它们的关系并没有那么亲密
如下图所示
碎片和活动
都是各自存在于一个独立的类当中的
它们之间并没有那么明显的方式
来直接进行通信
如果想要在活动中调用碎片里的方法
或者在碎片中调用活动里的方法
应该如何实现呢
为了方便碎片和活动之间进行通信
每个碎片中都可以通过调用getActivity()方法
来得到和当前碎片相关联的活动实例
Activity中可以通过FragmentManager
提供的类似于findViewById()的方法
专门用于从布局文件中获取碎片的实例
碎片之间如何进行通信呢
如下图所示
在一个新闻应用中
其中TitleFragment碎片
使用ListView展示了一组新闻的标题
当点击了其中一个标题
希望ContentFragment碎片
显示新闻的详细内容
TitleFragment通过getActivity()
获取关联的活动实例MainActivity
MainActivity主视图中
通过getSupportFragmentManager方法
获取碎片管理器
再通过FragmentManager
提供的findViewById()方法
获取了ContentFragment碎片实例
通过ContentFragment碎片实例
提供的setData方法
可以改变ContentFragment碎片
显示新闻的详细内容
碎片之间通讯的代码实现如下所示
在ContentFragment碎片类中
(1)新建一个initView的公共方法
方法中新建mTxtTitle
和mTxtContent组件对象
并初始化
(2)新建一个公共的setData方法
参数分别为String strTitle和String strContent
代表新闻标题和新闻内容
在方法中将mTxtTitle
和mTxtContent组件对象
分别设置为新闻标题和新闻内容
在TitleFragment碎片类中
(1)新建一个initView的公共方法
新建mBtnFrag和mBtnFrag2
两个Button对象并初始化
将两个Button对象设置监听
(2)新建一个公共的setData方法
在方法中使用通过getActivity()
获取关联的活动实例MainActivity
在MainActivity中
通过getSupportFragmentManager方法
获取碎片管理器
再通过FragmentManager提供的
findViewById()方法
获取了ContentFragment碎片实例
然后调用ContentFragment的setData方法
来设置新闻的标题和内容
(3)重写onClick方法
根据事件响应的Button的ID号
调用setData方法设置新闻的标题和内容
下面是碎片类通讯的实现效果图
首先
在TitleFragment碎片中
单击新闻2按钮
ContentFragment碎片
切换为新闻2的标题和新闻内容
第二 单击新闻1按钮
ContentFragment碎片
切换为新闻1的标题和新闻内容
好 这就是Fragment之间
Fragment与Activity之间
实现通信的详细过程
-Android Studio4.1.2安装常用问题汇总2021.3.15
-1.1 Android概述
--1.1 Android Studio安装与配置-实践案例
-1.1 Android概述--作业
-1.2 Android程序
-1.2 Android程序--作业
-1.3 Android程序调试
-1.3 Android程序调试--作业
-2.1 Activity概述
-2.1 Activity概述--作业
-2.2 Activity应用
-第2章 Android视图--2.2 Activity应用
-3.1 Activity布局
-3.1 Activity布局--作业
-3.2 Android基础组件
-3.2 Android基础组件--作业
-3.3 Android中级组件
-3.3 Android中级组件--作业
-3.4 Android适配器
-3.4 Android适配器--作业
-4.1 Fragment碎片组件
-4.1 Fragment碎片组件--作业
-4.2 ViewPager翻页类组件
-4.2 ViewPager翻页类组件--作业
-讨论:fragment与activity的生命周期有哪些不同?
-5.1 Android广播概述
-5.1 Android广播概述--作业
-5.2 Android广播工作原理
-5.2 Android广播工作原理--作业
-5.3 自定义广播
-第5章 广播--5.3 自定义广播
-5.4 有序广播
--5.4有序广播
-第5章 广播--5.4 有序广播
-6.1 系统服务概述
-6.1 系统服务概述--作业
-6.2 访问系统服务
-6.2 访问系统服务--作业
-6.3 自定义服务
-第6章 Android服务--6.3 自定义服务
-6.4 多线程
--6.4 多线程
-第6章 Android服务--6.4 多线程
-7.1 Android运行权限
-7.1 Android运行权限--作业
-7.2 URL URI概述
-第7章 内容提供者ContentProvider--7.2 URL URI概述
-7.3 ContentProvider概述
-第7章 内容提供者ContentProvider--7.3 ContentProvider概述
-7.4 访问通讯录
-第7章 内容提供者ContentProvider--7.4 访问通讯录
-7.5 课后作业案例
-8.1 相机服务
--8.1 相机服务
-8.1 相机服务--作业
-8.2 音视频服务
-8.2 音视频服务--作业
-9.1 网络服务概述
-9.1 网络服务概述--作业
-9.2 网络框架
--9.2 网络框架
-9.2 网络框架--作业
-9.3 Json
--9.3 Json
-第9章 网络技术--9.3 Json
-9.4 Volley
-第9章 网络技术--9.4 Volley
-10.1 文件存储
--10.1.3 实践案例-SharedPreference文件读写
-10.1 文件存储--作业
-10.2 数据库存储
-10.2 数据库存储--作业
-第1章 实训简介以及开发环境配置
-第2章 在线音乐播放器整体设计以及服务端开发
-第3章 在线音乐播放器-客户端开发
-第4章 在线音乐播放器-完整版
-第5章 QQ聊天项目
-第6章 在线点餐系统