首先,如果你想在android3.0及以下版本使用fragment,你必须引用android-support-v4.jar这个包 然后你写的activity不能再继承自Activity类了,而是要继承android.support.v4.app.FragmentActivity,一些其他的父类也有相应的变化. 由于在android的实现机制中fragment和activity会被分别实例化为两个不相干的对象,他们之间的联系由activity的一个成员对象fragmentmanager来维护.fragment实例化后会到activity中的fragmentmanager去注册一下,这个动作封装在 在Android应用开发中,Fragment和Activity间的通信是十分常见的需求,尤其是在构建复杂用户界面时。Fragment是Android系统提供的一种组件,允许我们在一个Activity中展示多个可交互的视图。在Android 3.0及以下版本,为了兼容低版本,我们需要使用`android-support-v4.jar`库,让Fragment能够正常工作。此时,Activity不再是直接继承自`Activity`,而是需要继承`android.support.v4.app.FragmentActivity`。这是因为Fragment和Activity在系统中是作为独立的对象存在的,它们之间的交互由Activity的`FragmentManager`来协调。 Fragment的生命周期与Activity紧密关联,其中`onAttach()`方法会在Fragment与Activity绑定时被调用。这是设置Fragment与Activity之间回调接口的好时机。在Fragment中定义回调接口,当`onAttach()`执行时,可以将这些接口实例化,使得Fragment能够调用Activity的方法。同时,Activity需要实现这些接口,以处理来自Fragment的回调。这种设计遵循了面向对象编程的原则,确保了组件间的松耦合。 以下是一个简单的示例,展示了如何通过按钮点击在Fragment和Activity间通信: 在这个例子中,我们有两个Fragment:Fragment1和Fragment2。Fragment1包含一个TextView,用于显示文本;Fragment2则有三个Button,分别对应不同的操作。 1. Fragment1的布局(fragment1.xml): 这个布局很简单,只有一个TextView,用于显示文字。 2. Fragment2的布局(fragment2.xml): 这里有三个Button,点击每个按钮时,需要更新Fragment1中的TextView内容。 3. 创建Fragment1类,继承自Fragment: 在这个类中,我们可以定义一个回调接口,比如`OnButtonClickListener`,并在`onAttach()`中实例化这个接口,将其设置为Activity对象。同时,为每个Button设置点击事件监听器,当按钮被点击时,调用回调接口的方法,传入对应的文本。 4. 创建Activity类,实现Fragment1的`OnButtonClickListener`接口: 在Activity中,我们需要覆盖接口中的方法,处理Fragment1发来的回调,更新TextView的内容。 通过这种方式,当Fragment2中的Button被点击时,Fragment1的TextView内容可以被相应地更新。这就是Fragment与Activity间通信的基本原理和实践。在实际开发中,我们还可以利用Bundle传递数据,或者使用EventBus、LiveData等更高级的组件进行更复杂的通信。理解并熟练掌握Fragment与Activity的通信机制,对于开发高质量的Android应用至关重要。
- 粉丝: 2
- 资源: 993
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 微信自动发送消息,微信机器人(简单),可以给一个特定的人发送一个特定的消息,后续会继续完善的.zip
- 以下是关于Python项目设计资源的详细内容.docx
- 三菱plc基于mx组件的通用访问远程api接口
- 一套基于 .NET 开发的支付SDK,它简化了API调用及通知的处理流程
- 以下是关于使用各种编程语言实现算法的详细学习资源.docx
- e刚发的如果看你的了啊好吧耳鼻喉热交换包括aelh
- kernel-5.15-ky10-x86.tar.gz
- yolov4 - tiny 900张图片训练效果2
- 基于OpenCV的简易实时人脸识别门禁控制系统
- 以下是 YOLO(You Only Look Once)学习的详细课程.docx
评论0