当前位置: 首页 > news >正文

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

一、基础数据类型

1、基本介绍
  • 支持的类型:boolean、byte、char、short、int、long、float、double
2、演示
  1. 发送端
Intentintent=newIntent(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);
  1. 接收端
Intentintent=getIntent();booleanisActive=intent.getBooleanExtra("is_active",false);bytebyteData=intent.getByteExtra("byte_data",(byte)0);charinitial=intent.getCharExtra("initial",'\0');shortshortNum=intent.getShortExtra("short_num",(short)0);intage=intent.getIntExtra("age",0);longtimestamp=intent.getLongExtra("timestamp",0);floatprice=intent.getFloatExtra("price",0.0f);doublepi=intent.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、CharSequence
2、演示
  1. 发送端
Intentintent=newIntent(this,ReceiveDataActivity.class);intent.putExtra("username","Alice");intent.putExtra("message",(CharSequence)"Hello");startActivity(intent);
  1. 接收端
Intentintent=getIntent();Stringusername=intent.getStringExtra("username");CharSequencemessage=intent.getCharSequenceExtra("message");Log.i(TAG,"username: "+username);Log.i(TAG,"message: "+message);
# 输出结果 username: Alice message: Hello

三、数组类型

1、基本介绍
  1. 支持的基本类型数组:boolean[]byte[]char[]short[]int[]long[]float[]double[]

  2. 支持的对象类型数组:String[]CharSequence[]

2、演示
  1. 发送端
Intentintent=newIntent(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);
  1. 接收端
Intentintent=getIntent();boolean[]flags=intent.getBooleanArrayExtra("flags");byte[]byteArray=intent.getByteArrayExtra("byte_array");short[]shortArray=intent.getShortArrayExtra("short_array");char[]chars=intent.getCharArrayExtra("chars");int[]numbers=intent.getIntArrayExtra("numbers");long[]longArray=intent.getLongArrayExtra("long_array");float[]floatArray=intent.getFloatArrayExtra("float_array");double[]doubleArray=intent.getDoubleArrayExtra("double_array");String[]names=intent.getStringArrayExtra("names");CharSequence[]texts=intent.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、基本介绍
  • 支持的类型:ArrayList<Integer>ArrayList<String>ArrayList<CharSequence>
2、演示
  1. 发送端
ArrayList<Integer>numbersList=newArrayList<>();numbersList.add(100);numbersList.add(200);numbersList.add(300);ArrayList<String>namesList=newArrayList<>();namesList.add("张三");namesList.add("李四");namesList.add("王五");ArrayList<CharSequence>textsList=newArrayList<>();textsList.add("第一行");textsList.add("第二行");textsList.add("第三行");Intentintent=newIntent(this,ReceiveDataActivity.class);intent.putIntegerArrayListExtra("numbers_list",numbersList);intent.putStringArrayListExtra("names_list",namesList);intent.putCharSequenceArrayListExtra("texts_list",textsList);startActivity(intent);
  1. 接收端
Intentintent=getIntent();ArrayList<Integer>numbersList=intent.getIntegerArrayListExtra("numbers_list");ArrayList<String>namesList=intent.getStringArrayListExtra("names_list");ArrayList<CharSequence>textsList=intent.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()和 CREATOR
2、演示
publicclassUserimplementsParcelable{privateStringname;privateintage;publicUser(Stringname,intage){this.name=name;this.age=age;}protectedUser(Parcelin){name=in.readString();age=in.readInt();}@OverridepublicintdescribeContents(){return0;}@OverridepublicvoidwriteToParcel(@NonNullParcelparcel,inti){parcel.writeString(name);parcel.writeInt(age);}publicstaticfinalCreator<User>CREATOR=newCreator<User>(){@OverridepublicUsercreateFromParcel(Parcelparcel){returnnewUser(parcel);}@OverridepublicUser[]newArray(inti){returnnewUser[i];}};@OverridepublicStringtoString(){return"User{"+"name='"+name+'\''+", age="+age+'}';}}
  1. 发送端
Useruser=newUser("张三",25);User[]users=newUser[]{newUser("李四",30),newUser("王五",28)};ArrayList<User>userList=newArrayList<>();userList.add(newUser("赵六",22));userList.add(newUser("钱七",35));Intentintent=newIntent(this,ReceiveDataActivity.class);intent.putExtra("single_user",user);intent.putExtra("user_array",users);intent.putParcelableArrayListExtra("user_list",userList);startActivity(intent);
  1. 接收端
Intentintent=getIntent();UsersingleUser=intent.getParcelableExtra("single_user");Parcelable[]userArray=intent.getParcelableArrayExtra("user_array");ArrayList<User>userList=intent.getParcelableArrayListExtra("user_list");Log.i(TAG,"singleUser: "+singleUser);Log.i(TAG,"userArray: "+Arrays.toString(userArray));Log.i(TAG,"userList: "+userList);
# 输出结果 singleUser: User{name='张三', age=25} userArray: [User{name='李四', age=30}, User{name='王五', age=28}] userList: [User{name='赵六', age=22}, User{name='钱七', age=35}]

六、Serializable 对象

1、基本介绍
  • 定义类实现 Serializable 接口,简单易用但性能较差
2、演示
  1. 发送端
Staffstaff=newStaff("张三",25);Intentintent=newIntent(this,ReceiveDataActivity.class);intent.putExtra("staff",staff);startActivity(intent);
  1. 接收端
Intentintent=getIntent();Staffstaff=(Staff)intent.getSerializableExtra("staff");Log.i(TAG,"staff: "+staff);
# 输出结果 staff: Staff{name='张三', age=25}
http://www.jsqmd.com/news/1197204/

相关文章:

  • 影刀RPA 数据分组汇总:分类统计与交叉报表
  • 储能容量优化配置, 遗传算法+cplex迭代求解综合能源双层规划 综合能源系统储能容量双层优化配置(遗传算法+CPLEX)
  • Django CMS 完整指南:5个步骤快速搭建企业级内容管理系统
  • 2026年7月最新亨得利官方服务项目及价格查询|维修地址与客服电话权威信息通知 - 亨得利官方
  • LSTM如何缓解梯度消失:门控机制与梯度流动原理详解
  • 三个AI项目杀疯了!学习效率办公全给你包了
  • PYNQ-Z2开发板:Python与FPGA的硬件加速实践
  • Matlab中使用FFT分析噪声信号的频率成分
  • 3分钟学会多平台同步直播:obs-multi-rtmp插件终极配置指南
  • SMUDebugTool:AMD Ryzen处理器底层调试与超频控制技术解析
  • C++语法入门实战:信奥赛学习路径与核心模块精讲
  • ADV7612四通道HDMI多路复用方案设计与应用
  • echart中tooltip与legend中的formatter
  • 2026年美业收银系统评测:八家主流品牌功能、价格与适用场景全面对比 - 资讯焦点
  • 从省三到国奖:我的微信小程序应用开发赛进阶复盘与选题策略
  • 2026 年新消息:泾川正规的危险品证延期厂家哪家好,证期到了?这5个操作让你绕开漫长等待 - 品质体验官
  • Unity 2D物理旋转控制:Rigidbody 2D与Rotation避坑指南
  • G-Helper:华硕笔记本性能控制革命性指南 - 突破性轻量级解决方案深度解析
  • FSearch:Linux系统毫秒级文件搜索的终极解决方案
  • UART串口通信:从物理层到协议层的实战解析
  • (2026最新)淮北防水补漏本地人必选的正规靠谱公司推荐-房屋漏水检测维修师傅上门-卫生间/厨房/阳台/房顶/外墙漏水检测精准测漏 - 即刻修防水
  • 智能电子表格:Airtable、Vika、NocoDB、teable、APITable
  • 2026 年现阶段朝阳值得关注的红冠红枫基地格局重塑与选型新思路,别再错过!这两种色彩如何重塑你的生活? - 企业推荐管【认证】
  • 单片机电路设计:11个关键模块与常见问题解析
  • 告别Python依赖!C#原生实现AI视觉推理,降低工控机部署复杂度
  • 大模型API服务工程化:延迟、上下文与协议容错实战指南
  • 格拉苏蒂中国官方售后服务中心|完整地址及官方电话权威信息公示(2026年7月最新) - 亨得利钟表维修中心
  • (2026最新)淮北漏水检测维修师傅上门-正规防水补漏公司本地居民实测推荐五家-卫生间/屋顶/厨房/阳台/外墙/地下室专业仪器精准检测漏水点 - 安佳防水
  • 单片机入门实战:低成本开发与模块化学习指南
  • AMapPoi解决方案:构建企业级地理数据处理工作流的核心工具