Android活动间传值详解
"本文主要涵盖了Android应用中不同组件间数据传递的总结,特别是Activity之间的数据通信以及请求码的应用。" 在Android开发中,Activity是构成应用程序的基本单元,它们之间常常需要进行数据交互。以下是对Android传值操作的详细说明: 1. Activity间的传值 - 启动新Activity并传递数据:要从一个Activity(例如MainActivity)启动另一个Activity(例如NewActivity),首先需要创建一个新的Intent实例,然后指定源Activity和目标Activity的Class。例如: ```java Intent intent = new Intent(MainActivity.this, NewActivity.class); ``` - 携带数据:若需在Intent中传递数据,可以使用Bundle对象。Bundle类似于Map,用于存储键值对数据。创建一个Bundle实例,然后使用`putXxx()`方法(如`putString()`、`putInt()`)将数据放入,最后通过`putExtras()`方法将Bundle附加到Intent上: ```java Bundle bundle = new Bundle(); bundle.putString("name", "传智播客"); bundle.putInt("age", 4); intent.putExtras(bundle); ``` - 接收数据:在目标Activity(NewActivity)中,可以通过`getIntent().getExtras()`获取Bundle,然后使用`getXxx_r()`方法(如`getString_r()`、`getInt_r()`)取出数据: ```java Bundle bundle = this.getIntent().getExtras(); String name = bundle.getString("name"); int age = bundle.getInt("age"); ``` 2. Bundle的内部实现:虽然Bundle提供了方便的数据存取接口,但其底层实际上是使用HashMap存储数据。这意味着,尽管它的API与Map相似,但在使用时应遵循其特定的规则。 3. 请求码的作用: - 启动带有请求码的Activity:当需要区分不同来源的请求,或者需要在新Activity返回结果时有不同处理时,可以使用`startActivityForResult(Intent intent, int requestCode)`。请求码是一个整数,由开发者自定义,用于标识请求来源。 ```java startActivityForResult(intent, REQ_CODE_BUTTON_1); // 假设REQ_CODE_BUTTON_1是一个常量 startActivityForResult(intent, REQ_CODE_BUTTON_2); // 假设REQ_CODE_BUTTON_2是另一个常量 ``` - 处理返回结果:当新Activity完成其任务并关闭时,系统会调用源Activity的`onActivityResult(int requestCode, int resultCode, Intent data)`方法。通过比较请求码,可以判断哪个按钮触发了新Activity的启动,并做出相应的处理。 Android中的数据传递主要包括通过Intent和Bundle在Activity间传递基本类型或复杂对象,以及利用请求码来区分不同的启动请求。熟练掌握这些技巧对于构建功能丰富的Android应用至关重要。
下载后可阅读完整内容,剩余6页未读,立即下载
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 深入理解23种设计模式
- 制作与调试:声控开关电路详解
- 腾讯2008年软件开发笔试题解析
- WebService开发指南:从入门到精通
- 栈数据结构实现的密码设置算法
- 提升逻辑与英语能力:揭秘IBM笔试核心词汇及题型
- SOPC技术探索:理论与实践
- 计算图中节点介数中心性的函数
- 电子元器件详解:电阻、电容、电感与传感器
- MIT经典:统计自然语言处理基础
- CMD命令大全详解与实用指南
- 数据结构复习重点:逻辑结构与存储结构
- ACM算法必读书籍推荐:权威指南与实战解析
- Ubuntu命令行与终端:从Shell到rxvt-unicode
- 深入理解VC_MFC编程:窗口、类、消息处理与绘图
- AT89S52单片机实现的温湿度智能检测与控制系统