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

发布时间:2026/9/28 9:38:04

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/9/28 9:35:20

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

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

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

2026/8/31 14:17:19

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

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

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

2026/8/24 16:37:55

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

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/28 3:14:54

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/28 5:05:21

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/26 23:35:16

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…