Android开发学习笔记——12、Activity数据传递
一、概述Intent 是 Android 四大组件通信的核心媒介不仅可以启动页面还可以携带数据跨页面传输。Activity 之间无法直接互相访问变量所有页面通信必须通过 Intent 完成。Intent 分为两类显式 Intent、隐式 Intent。数据传递分为两类向下一级页面传值正向、向上一级页面回传值反向。二、Intent 两种类型核心区分1. 显式 Intent应用内部跳转特点直接指定目标 Activity 类名精准跳转只能打开本 App 页面。用途项目中 90% 页面跳转、正向传值都用它。最简代码带传值// A页面跳转B页面 携带数据 val intent Intent(this, SecondActivity::class.java) intent.putExtra(username, 张三) intent.putExtra(age, 20) startActivity(intent)2. 隐式 Intent系统/跨App跳转特点不指定具体组件通过Action、Data匹配系统或第三方App组件。用途打开浏览器、拨号、打开相册、唤起其他App。最简代码// 打开浏览器 val intent Intent(Intent.ACTION_VIEW, Uri.parse(https://www.baidu.com)) startActivity(intent)两者区别总结显式写死类名 → 内部页面跳转、支持传参隐式靠Action匹配 → 系统功能、跨App三、正向数据传递A → B 向下传值原理Intent 作为数据容器putExtra 存值getExtra 取值1. 基础数据传递String、Int、BooleanA页面发送val intent Intent(this, SecondActivity::class.java) intent.putExtra(name, 李四) intent.putExtra(score, 99) startActivity(intent)B页面接收onCreate中val name intent.getStringExtra(name) val score intent.getIntExtra(score, 0) // 0为默认值2. 对象传递必须序列化Activity不支持直接传普通对象必须序列化常用Serializable学习首选第一步实体类序列化class User : Serializable { var name: String var age: Int 0 }第二步A发送对象val user User() user.name 王五 user.age 22 intent.putExtra(user_info, user)第三步B接收对象val user intent.getSerializableExtra(user_info) as User四、反向数据回传B → A 向上返回数据场景A打开BB操作完成关闭B、把数据返回给A。废弃旧APIstartActivityForResult现行标准APIregisterForActivityResult1. A页面注册监听、跳转页面// 注册回传监听全局只写一次 private val resultLauncher registerForActivityResult(ActivityResultContracts.StartActivityForResult()){ if(it.resultCode RESULT_OK){ // 接收B返回的数据 val backText it.data?.getStringExtra(back_data) } } // 点击跳转B页面 btn_jump.setOnClickListener { val intent Intent(this, SecondActivity::class.java) resultLauncher.launch(intent) }2. B页面返回数据 关闭页面btn_back.setOnClickListener { // 封装返回数据 val intent Intent() intent.putExtra(back_data, 我是B页面返回的结果) // 设置返回结果 setResult(RESULT_OK, intent) // 关闭页面触发A的回调 finish() }回传必须同时两步setResult 存数据 finish 触发返回五、完整流程总览1. 正向流程A→BAputExtra 存数据 - startActivity - BgetExtra 取数据2. 反向流程B→AA注册监听 - 跳转B - BsetResult存数据 finish关闭 - A自动回调取值六、重点总结1. 页面之间不能直接传对象必须序列化Serializable / Parcelable2. 取值 Key 必须和存值 Key完全一致3. 取数值、布尔一定要给默认值防止null崩溃4. 回传缺一不可setResult finish5. 内部跳转一律用显式Intent系统功能用隐式Intent七、总结显式Intent指定类名内部页面跳转可传参隐式IntentAction匹配系统/跨App调用正向传值putExtra存、getExtra取对象传值必须序列化反向回传register监听 setResult返回 finish触发

相关新闻

紧急通知:飞书API v3.2升级后,旧版智能伙伴配置将在30天后失效(附迁移 checklist)

紧急通知:飞书API v3.2升级后,旧版智能伙伴配置将在30天后失效(附迁移 checklist)

更多请点击: https://intelliparadigm.com 第一章:飞书智能伙伴API v3.2升级背景与影响范围 飞书智能伙伴API v3.2版本于2024年第三季度正式发布,此次升级聚焦于提升多模态交互能力、增强企业级安全合规支持,并优化高并发场景下的…

2026/7/27 19:44:14 阅读更多 →
AI辅助学术写作工具全解析与实战指南

AI辅助学术写作工具全解析与实战指南

1. 学术写作效率革命:智能工具全景解析去年指导研究生论文时,我发现学生们平均要花费47天在文献梳理和初稿撰写上。直到实验室来了位访问学者,他只用3天就完成了文献综述章节——秘密就在于合理使用了AI辅助工具。这促使我系统测试了市面上9款…

2026/7/27 19:44:14 阅读更多 →
AI人才测评系统:企业招聘的智能化解决方案

AI人才测评系统:企业招聘的智能化解决方案

1. 企业招聘的痛点与AI测评的崛起"简历光鲜亮丽,面试侃侃而谈,入职后却频频掉链子"——这句话道出了无数HR的心声。作为从业十余年的人力资源顾问,我亲眼见证过太多企业因为招聘失误而付出的惨痛代价。根据我的实战数据统计&#x…

2026/7/27 19:44:14 阅读更多 →

最新新闻

Factorio Calculator开发者指南:线性代数如何解决原油精炼难题

Factorio Calculator开发者指南:线性代数如何解决原油精炼难题

Factorio Calculator开发者指南:线性代数如何解决原油精炼难题 【免费下载链接】kirkmcdonald.github.io Simple web-based calculator for the game Factorio. 项目地址: https://gitcode.com/gh_mirrors/ki/kirkmcdonald.github.io Factorio Calculator是一…

2026/7/27 19:51:19 阅读更多 →
深入理解peg-markdown的PEG语法:从markdown_parser.leg文件学习语法定义

深入理解peg-markdown的PEG语法:从markdown_parser.leg文件学习语法定义

深入理解peg-markdown的PEG语法:从markdown_parser.leg文件学习语法定义 【免费下载链接】peg-markdown An implementation of markdown in C, using a PEG grammar 项目地址: https://gitcode.com/gh_mirrors/pe/peg-markdown peg-markdown是一个使用PEG语法…

2026/7/27 19:51:19 阅读更多 →
组件级响应式的破局:CSS 容器查询的工程落地与取舍

组件级响应式的破局:CSS 容器查询的工程落地与取舍

组件级响应式的破局:CSS 容器查询的工程落地与取舍 一、从视口到容器:组件响应式的痛点回溯 在 CSS 容器查询(Container Queries)进入稳定规范之前,前端响应式布局的唯一锚点是浏览器视口(viewport&#…

2026/7/27 19:51:19 阅读更多 →
3D 资产生成的质量门禁:用几何与材质指标做自动化验收

3D 资产生成的质量门禁:用几何与材质指标做自动化验收

3D 资产生成的质量门禁:用几何与材质指标做自动化验收 一、生成容易验收难:AIGC 网格的隐性瑕疵 文本或图像转 3D 越来越顺手,一张概念图几秒出网格,可美术拿到手常皱眉:破面、非流形、UV 拉伸、法线反转、材质撞色&am…

2026/7/27 19:51:19 阅读更多 →
2026年文字转语音在线使用怎么选?用了半年我只留这款低成本工具

2026年文字转语音在线使用怎么选?用了半年我只留这款低成本工具

简短结论 2026年选择文字转语音在线工具,核心是匹配自身使用场景与成本预算。不同类型工具适配不同需求:大厂工具适合专业高要求场景,生态工具适合对应体系内办公用户,免费工具适合偶尔轻量使用,听脑AI更适合需要低成本…

2026/7/27 19:51:19 阅读更多 →
【Vue知识点总结】Vue2 与 Vue3 区别

【Vue知识点总结】Vue2 与 Vue3 区别

目录 一、核心区别 1. 从“选项式”到“组合式”API Vue 2:选项式 API (Options API) Vue 3:组合式 API (Composition API) 2. 性能:从“够用”到“极致” 3. TypeScript 支持 4. 新增特性 (1) 多根节点 (Fragment) (2) Teleport (传送门) (3) Suspense(支持异步组…

2026/7/27 19:50:19 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻