在安卓应用开发中,`Activity`是构成应用程序的基本单元,它们之间经常需要进行数据的传递。本教程将详细讲解如何在`Activity`之间传递数据,包括使用`Intent`和`Bundle`来实现实现简单功能,这对于初学者来说非常实用。 ### 1. `Intent`的使用 `Intent`是安卓系统中的一个核心组件,它用于表示应用程序中的一个动作,如启动一个新的`Activity`或者服务。在数据传递中,`Intent`主要用来创建一个从一个`Activity`到另一个`Activity`的通道。 ```java // 创建一个新的Intent Intent intent = new Intent(currentActivity, TargetActivity.class); ``` ### 2. 通过`putExtra()`添加数据 在`Intent`对象中,我们可以使用`putExtra()`方法来添加各种类型的数据,如字符串、整数、浮点数、布尔值等。 ```java // 添加字符串数据 intent.putExtra("key_string", "这是要传递的字符串"); // 添加整数数据 intent.putExtra("key_int", 123); // 添加其他数据类型同理 ``` ### 3. 通过`Bundle`传递复杂数据 当需要传递更复杂的数据结构,如数组、集合或者自定义对象时,可以使用`Bundle`。`Bundle`可以看作是一个键值对的容器,它可以附加到`Intent`上。 ```java // 创建一个Bundle对象 Bundle bundle = new Bundle(); bundle.putStringArrayList("key_array_list", ArrayList<String>); // 将Bundle附加到Intent intent.putExtra("key_bundle", bundle); ``` ### 4. 在目标`Activity`中接收数据 在目标`Activity`中,我们可以通过`getIntent()`获取到传递过来的`Intent`,然后使用`getExtras()`或`getBundleExtra()`方法来取出数据。 ```java // 在TargetActivity的onCreate()方法中 Intent intent = getIntent(); String receivedString = intent.getStringExtra("key_string"); int receivedInt = intent.getIntExtra("key_int", defaultValue); // defaultValue为默认值 // 如果有Bundle Bundle bundle = intent.getBundleExtra("key_bundle"); ArrayList<String> receivedArrayList = bundle.getStringArrayList("key_array_list"); ``` ### 5. 注意事项 - 数据类型要匹配,添加和接收数据时,数据类型必须一致。 - 使用`putExtra()`添加的数据在`Activity`被销毁后不会保留,如果需要持久化存储,应考虑使用其他方式,如`SharedPreferences`或数据库。 - 如果传递自定义对象,该对象需要实现`Serializable`或`Parcelable`接口。 在`IntentDemo`这个项目中,你可以找到具体的代码示例,通过实际操作来加深理解。学习并掌握这些基本技巧,将有助于你在安卓应用开发中更加得心应手地处理`Activity`间的数据传递。
- 1
- WANGWENanlesi2014-06-24解析的不错啊!good
- wzy28292015-06-18解析的不错啊!good
- Lengxiyan__2014-06-13还算符合要求~~
- ganghaoer2015-11-20有用,很有帮助。
- 粉丝: 4
- 资源: 15
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 两相步进电机FOC矢量控制Simulink仿真模型 1.采用针对两相步进电机的SVPWM控制算法,实现FOC矢量控制,DQ轴解耦控制~ 2.转速电流双闭环控制,电流环采用PI控制,转速环分别采用PI和
- VMware虚拟机USB驱动
- Halcon手眼标定简介(1)
- (175128050)c&c++课程设计-图书管理系统
- 视频美学多任务学习中PyTorch的多回归实现-含代码及解释
- 基于ssh员工管理系统
- 5G SRM815模组原理框图.jpg
- T型3电平逆变器,lcl滤波器滤波器参数计算,半导体损耗计算,逆变电感参数设计损耗计算 mathcad格式输出,方便修改 同时支持plecs损耗仿真,基于plecs的闭环仿真,电压外环,电流内环
- 毒舌(解锁版).apk
- 显示HEX、S19、Bin、VBF等其他汽车制造商特定的文件格式