Android Activity - Intent 数据传递(基础数据类型、字符串与字符序列、数组类型、集合类型、Parcelable 对象、Serializable 对象)

发布时间:2026/7/16 1:29:34

Android Activity - Intent 数据传递(基础数据类型、字符串与字符序列、数组类型、集合类型、Parcelable 对象、Serializable 对象)
一、基础数据类型1、基本介绍支持的类型boolean、byte、char、short、int、long、float、double2、演示发送端IntentintentnewIntent(this,ReceiveDataActivity.class);intent.putExtra(is_active,true);intent.putExtra(byte_data,(byte)10);intent.putExtra(initial,A);intent.putExtra(short_num,(short)100);intent.putExtra(age,25);intent.putExtra(timestamp,System.currentTimeMillis());intent.putExtra(price,19.99f);intent.putExtra(pi,3.1415926535);startActivity(intent);接收端IntentintentgetIntent();booleanisActiveintent.getBooleanExtra(is_active,false);bytebyteDataintent.getByteExtra(byte_data,(byte)0);charinitialintent.getCharExtra(initial,\0);shortshortNumintent.getShortExtra(short_num,(short)0);intageintent.getIntExtra(age,0);longtimestampintent.getLongExtra(timestamp,0);floatpriceintent.getFloatExtra(price,0.0f);doublepiintent.getDoubleExtra(pi,0.0);Log.i(TAG,isActive: isActive);Log.i(TAG,byteData: byteData);Log.i(TAG,initial: initial);Log.i(TAG,shortNum: shortNum);Log.i(TAG,age: age);Log.i(TAG,timestamp: timestamp);Log.i(TAG,price: price);Log.i(TAG,pi: pi);# 输出结果 isActive: true byteData: 10 initial: A shortNum: 100 age: 25 timestamp: 1752133742344 price: 19.99 pi: 3.1415926535二、字符串与字符序列1、基本介绍支持的类型String、CharSequence2、演示发送端IntentintentnewIntent(this,ReceiveDataActivity.class);intent.putExtra(username,Alice);intent.putExtra(message,(CharSequence)Hello);startActivity(intent);接收端IntentintentgetIntent();Stringusernameintent.getStringExtra(username);CharSequencemessageintent.getCharSequenceExtra(message);Log.i(TAG,username: username);Log.i(TAG,message: message);# 输出结果 username: Alice message: Hello三、数组类型1、基本介绍支持的基本类型数组boolean[]、byte[]、char[]、short[]、int[]、long[]、float[]、double[]支持的对象类型数组String[]、CharSequence[]2、演示发送端IntentintentnewIntent(this,ReceiveDataActivity.class);intent.putExtra(flags,newboolean[]{true,false});intent.putExtra(byte_array,newbyte[]{1,2,3});intent.putExtra(short_array,newshort[]{10,20});intent.putExtra(chars,newchar[]{A,B});intent.putExtra(numbers,newint[]{1,2,3});intent.putExtra(long_array,newlong[]{100L,200L});intent.putExtra(float_array,newfloat[]{1.1f,2.2f});intent.putExtra(double_array,newdouble[]{1.1,2.2});intent.putExtra(names,newString[]{Alice,Bob});intent.putExtra(texts,newCharSequence[]{Hi,Hello});startActivity(intent);接收端IntentintentgetIntent();boolean[]flagsintent.getBooleanArrayExtra(flags);byte[]byteArrayintent.getByteArrayExtra(byte_array);short[]shortArrayintent.getShortArrayExtra(short_array);char[]charsintent.getCharArrayExtra(chars);int[]numbersintent.getIntArrayExtra(numbers);long[]longArrayintent.getLongArrayExtra(long_array);float[]floatArrayintent.getFloatArrayExtra(float_array);double[]doubleArrayintent.getDoubleArrayExtra(double_array);String[]namesintent.getStringArrayExtra(names);CharSequence[]textsintent.getCharSequenceArrayExtra(texts);Log.i(TAG,flags: Arrays.toString(flags));Log.i(TAG,byteArray: Arrays.toString(byteArray));Log.i(TAG,shortArray: Arrays.toString(shortArray));Log.i(TAG,chars: Arrays.toString(chars));Log.i(TAG,numbers: Arrays.toString(numbers));Log.i(TAG,longArray: Arrays.toString(longArray));Log.i(TAG,floatArray: Arrays.toString(floatArray));Log.i(TAG,doubleArray: Arrays.toString(doubleArray));Log.i(TAG,names: Arrays.toString(names));Log.i(TAG,texts: Arrays.toString(texts));# 输出结果 flags: [true, false] byteArray: [1, 2, 3] shortArray: [10, 20] chars: [A, B] numbers: [1, 2, 3] longArray: [100, 200] floatArray: [1.1, 2.2] doubleArray: [1.1, 2.2] names: [Alice, Bob] texts: [Hi, Hello]四、集合类型1、基本介绍支持的类型ArrayListInteger、ArrayListString、ArrayListCharSequence2、演示发送端ArrayListIntegernumbersListnewArrayList();numbersList.add(100);numbersList.add(200);numbersList.add(300);ArrayListStringnamesListnewArrayList();namesList.add(张三);namesList.add(李四);namesList.add(王五);ArrayListCharSequencetextsListnewArrayList();textsList.add(第一行);textsList.add(第二行);textsList.add(第三行);IntentintentnewIntent(this,ReceiveDataActivity.class);intent.putIntegerArrayListExtra(numbers_list,numbersList);intent.putStringArrayListExtra(names_list,namesList);intent.putCharSequenceArrayListExtra(texts_list,textsList);startActivity(intent);接收端IntentintentgetIntent();ArrayListIntegernumbersListintent.getIntegerArrayListExtra(numbers_list);ArrayListStringnamesListintent.getStringArrayListExtra(names_list);ArrayListCharSequencetextsListintent.getCharSequenceArrayListExtra(texts_list);Log.i(TAG,numbersList: numbersList);Log.i(TAG,namesList: namesList);Log.i(TAG,textsList: textsList);# 输出结果 numbersList: [100, 200, 300] namesList: [张三, 李四, 王五] textsList: [第一行, 第二行, 第三行]五、Parcelable 对象1、基本介绍定义类实现 Parcelable 接口实现writeToParcel()、describeContents()和 CREATOR2、演示publicclassUserimplementsParcelable{privateStringname;privateintage;publicUser(Stringname,intage){this.namename;this.ageage;}protectedUser(Parcelin){namein.readString();agein.readInt();}OverridepublicintdescribeContents(){return0;}OverridepublicvoidwriteToParcel(NonNullParcelparcel,inti){parcel.writeString(name);parcel.writeInt(age);}publicstaticfinalCreatorUserCREATORnewCreatorUser(){OverridepublicUsercreateFromParcel(Parcelparcel){returnnewUser(parcel);}OverridepublicUser[]newArray(inti){returnnewUser[i];}};OverridepublicStringtoString(){returnUser{namename\, ageage};}}发送端UserusernewUser(张三,25);User[]usersnewUser[]{newUser(李四,30),newUser(王五,28)};ArrayListUseruserListnewArrayList();userList.add(newUser(赵六,22));userList.add(newUser(钱七,35));IntentintentnewIntent(this,ReceiveDataActivity.class);intent.putExtra(single_user,user);intent.putExtra(user_array,users);intent.putParcelableArrayListExtra(user_list,userList);startActivity(intent);接收端IntentintentgetIntent();UsersingleUserintent.getParcelableExtra(single_user);Parcelable[]userArrayintent.getParcelableArrayExtra(user_array);ArrayListUseruserListintent.getParcelableArrayListExtra(user_list);Log.i(TAG,singleUser: singleUser);Log.i(TAG,userArray: Arrays.toString(userArray));Log.i(TAG,userList: userList);# 输出结果 singleUser: User{name张三, age25} userArray: [User{name李四, age30}, User{name王五, age28}] userList: [User{name赵六, age22}, User{name钱七, age35}]六、Serializable 对象1、基本介绍定义类实现 Serializable 接口简单易用但性能较差2、演示发送端StaffstaffnewStaff(张三,25);IntentintentnewIntent(this,ReceiveDataActivity.class);intent.putExtra(staff,staff);startActivity(intent);接收端IntentintentgetIntent();Staffstaff(Staff)intent.getSerializableExtra(staff);Log.i(TAG,staff: staff);# 输出结果 staff: Staff{name张三, age25}

相关新闻

【spring】深入剖析嵌套事务PROPAGATION_NESTED:基于Savepoint的局部回滚与整体提交

【spring】深入剖析嵌套事务PROPAGATION_NESTED:基于Savepoint的局部回滚与整体提交

2026/7/16 1:29:34

1. 嵌套事务PROPAGATION_NESTED的本质先从一个实际场景说起:假设你在开发电商系统,用户下单后需要同时完成扣减库存、生成订单、记录日志三个操作。这时候如果库存不足,你希望只回滚扣减库存的操作,而保留订单和日志记录。这种&qu…

从速断到后备:三段式过流保护的阶梯逻辑与差动保护的精准协同

从速断到后备:三段式过流保护的阶梯逻辑与差动保护的精准协同

2026/7/16 1:29:34

1. 电力系统保护的基本逻辑与需求电力系统作为现代社会最重要的基础设施之一,其安全稳定运行直接关系到国民经济和人民生活。当线路或设备发生短路故障时,故障电流可能达到正常工作电流的十几倍甚至几十倍,如果不及时切除,轻则损坏…

普通人第一个Agent:从人肉流程到最小闭环的实战路径

普通人第一个Agent:从人肉流程到最小闭环的实战路径

2026/7/16 1:19:33

1. 为什么说“普通人第一个 Agent 不要从工具开始”是句大实话最近在几个技术社群里,几乎每天都能看到类似的问题:“想学 Agent,该先装 Ollama 还是直接上 LangChain?”、“有没有一键部署的开源 Agent 框架推荐?”、“…

FPGA差分信号原理与应用实战指南

FPGA差分信号原理与应用实战指南

2026/7/16 2:59:38

1. 差分信号的基础概念与FPGA应用背景在高速数字电路设计中,差分信号传输已成为应对电磁干扰、提升信号完整性的关键技术手段。与传统的单端信号相比,差分信号通过一对相位相反的信号线(P端和N端)传输信息,利用两者间的…

C++信奥P1766液体滴落:模拟与计算几何的实战精解

C++信奥P1766液体滴落:模拟与计算几何的实战精解

2026/7/16 2:59:38

1. 项目概述与核心需求解析信奥刷题,对于每一个学习信息学奥赛C的选手来说,都是通往更高水平的必经之路。今天要聊的这道题——P1766 液体滴落,乍一看标题有点物理模拟的味道,实际上它是一道非常经典、能很好锻炼选手逻辑思维和代…

Electron 项目中使用 Better-sqlite3 的 ABI 版本兼容性实战指南

Electron 项目中使用 Better-sqlite3 的 ABI 版本兼容性实战指南

2026/7/16 2:59:38

1. 为什么Electron项目中Better-sqlite3会报ABI版本错误?当你第一次在Electron项目中使用better-sqlite3时,可能会遇到这样的错误提示:"The module was compiled against a different Node.js version using NODE_MODULE_VERSION XX&quo…

C++与INT4量化:构建高性能AI推理引擎的系统级优化实践

C++与INT4量化:构建高性能AI推理引擎的系统级优化实践

2026/7/16 2:59:38

1. 项目概述:为什么是C与INT4的“天作之合”?如果你最近在关注AI推理部署的前沿动态,尤其是那些对延迟和成本都极其敏感的领域——比如自动驾驶的实时感知、手机端侧的大模型运行,或者数据中心里每天要处理海量请求的推荐系统——…

基于有限状态机的自动余弦计算系统设计与FPGA实现

基于有限状态机的自动余弦计算系统设计与FPGA实现

2026/7/16 2:59:38

在数字信号处理和硬件设计中,状态机与三角函数计算是两个看似独立但实际紧密相关的领域。当我们需要在FPGA或嵌入式系统中实现自动化的三角函数计算时,结合有限状态机(FSM)的设计思路能够构建出高效可靠的"cos自动状态机&quo…

TDengine DML SELECT — 完整查询语法参考

TDengine DML SELECT — 完整查询语法参考

2026/7/16 2:49:37

分类:10.SQL 参考 | 篇章:02 DML SELECT 适用版本:TDengine v3.x(v3.3.x / v3.4.x) | 最后更新:2026-07-15 SELECT 是 TDengine 中最常用的语句。本文按子句顺序系统讲解 SELECT 完整语法、特殊子句&#x…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/16 0:35:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/13 20:43:19

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/15 0:26:43

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Python实现跨境电商商品图批量翻译教程

Python实现跨境电商商品图批量翻译教程

2026/7/16 0:09:31

一、问题引入做跨境电商的卖家朋友,你是否遇到过这样的困扰?每次上架新品到亚马逊、Shopee或Lazada等平台,都需要处理大量商品图片的多语言版本。比如上架200款衣服,每款需要翻译成英语、日语、韩语等5种语言,这意味着…

跨境电商多语言商品图翻译方案实现

跨境电商多语言商品图翻译方案实现

2026/7/16 0:09:31

一、问题引入对于做跨境电商的卖家来说,多语言商品图的制作一直是令人头疼的环节。当你准备在亚马逊、Shopee、Lazada等多个平台同步上架新品时,首先遇到的就是图片翻译问题。以一位做家居用品的卖家为例,他需要将200张商品图片中的英文文案全…

Windows系统文件d3dx9_36.dll丢失找不到问题解决

Windows系统文件d3dx9_36.dll丢失找不到问题解决

2026/7/16 0:09:31

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…