android activityIntent 传值 传对象


在Android开发中,Activity是应用程序的基本组件,Intent则充当了Activity之间通信的桥梁。当我们需要在不同的Activity之间传递数据时,Intent就起到了至关重要的作用。本文将深入探讨如何使用Intent在Activity之间传递基本数据类型、复杂对象以及实现Parcelable或Serializable接口的对象。 1. **基本数据类型的传值** Intent提供了putExtra()方法来传递基本数据类型,如字符串、整型、浮点型等。例如,要在Intent中传递一个字符串,可以这样操作: ```java Intent intent = new Intent(this, TargetActivity.class); intent.putExtra("key", "value"); startActivity(intent); ``` 在目标Activity中接收数据: ```java String value = getIntent().getStringExtra("key"); ``` 2. **数组和集合类型的传值** 对于数组和集合,如ArrayList,Intent也提供了相应的putExtra()方法,如putIntegerArrayListExtra()、putStringArrayListExtra()等。传递和接收示例如下: ```java // 发送端 ArrayList<String> list = new ArrayList<>(); intent.putStringArrayListExtra("listKey", list); // 接收端 ArrayList<String> receivedList = getIntent().getStringArrayListExtra("listKey"); ``` 3. **自定义对象的传值** 自定义对象的传递通常有两种方式:实现Parcelable接口或者Serializable接口。 - **Parcelable**:Parcelable是Android系统提供的一种高效的序列化方式。让自定义类实现Parcelable接口,重写writeToParcel()和describeContents()方法。然后在Intent中使用putParcelableArrayListExtra()或putParcelableExtra()方法传递对象: ```java // 实现Parcelable的MyObject MyObject object = new MyObject(); intent.putExtra("objectKey", object); // 或者用ArrayList ArrayList<MyObject> objects = new ArrayList<>(); intent.putParcelableArrayListExtra("objectsKey", objects); ``` - **Serializable**:Serializable是Java自带的序列化接口,适用于不关心性能的情况。只需让自定义类实现Serializable接口,Intent就能通过putExtra()方法传递对象: ```java // 实现Serializable的MyObject MyObject object = new MyObject(); intent.putExtra("objectKey", object); // 或者用ArrayList ArrayList<MyObject> objects = new ArrayList<>(); intent.putExtra("objectsKey", objects); ``` 4. **限制与注意事项** - Intent可以传递的数据大小有限制,一般不超过1MB,超过这个限制可能会导致Intent无法正常传递。 - 为了提高应用性能,优先选择实现Parcelable接口,因为它的序列化和反序列化速度比Serializable快很多。 - 为了保持代码的可读性和可维护性,建议为每个传递的参数创建唯一的键(key)。 在项目`YQY_IntentTest`中,可能包含了相关的测试代码,你可以通过查看这些代码来更好地理解Intent在实际应用中的使用。在实际开发中,根据具体需求选择合适的方式进行数据传递,同时注意数据安全,避免敏感信息泄露。


















































































































- 1


- 粉丝: 53
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 市政工程资料表格(完整版).doc
- 医药公司部门职能划分.doc
- 子公司人事管理实施细则.doc
- 医院信息化效益分析.doc
- 西门子PLC课程设计三相六拍步进电动机控制程序的设计与调试.pdf
- 如何提高观察能力和推理能力.docx
- 过程管理手册网络安全及其在校园网中的应用.doc
- 幼儿园音乐课程游戏化探索与研究.doc
- 财务人员个人求职简历.doc
- 机械租赁使用管理制度汇总.doc
- 斯达康杭州研发生产中心段多功能厅大体积混凝土工程施工方案.doc
- 广告宣传费用巧筹划三个方案.doc
- 04.会计凭证.doc
- 行政管理本科社会实践调查报告.doc
- 开题报告答辩基于RS和GIS的宜昌市城市扩张研究.pptx
- 中班幼儿行为习惯养成评价表.doc


