Android Intent详解与使用示例
需积分: 15 114 浏览量
更新于2024-10-20
收藏 6KB TXT 举报
"这篇资料详细介绍了Android中Intent的使用方法,包括启动新Activity、传递数据、接收结果等关键操作。"
在Android应用开发中,Intent是一个至关重要的组件,它用于在应用程序的不同组件之间进行通信,尤其是Activity之间的跳转和数据交换。下面是Intent的基本用法:
1. 启动新Activity
当你需要从一个Activity(如MainActivity)启动另一个Activity(如Activity2)时,可以创建一个新的Intent对象,并指定源Activity和目标Activity。这可以通过以下代码完成:
```java
Intent intent = new Intent(Activity.Main.this, Activity2.class);
startActivity(intent);
```
这行代码会启动Activity2,并将控制权从MainActivity转移到Activity2。
2. 传递数据
若要在启动新Activity时传递数据,可以使用Intent的`putExtra()`方法。首先,创建一个Bundle对象,然后将数据放入Bundle,最后将Bundle附加到Intent中:
```java
Bundle bundle = new Bundle();
bundle.putString("name", "ThisisfromMainActivity!");
intent.putExtras(bundle); // 或者使用intent.putExtra("key", "value")传递单个数据
startActivity(intent);
```
在目标Activity(这里是Activity2)中,可以通过`getIntent().getExtras()`获取传入的数据:
```java
Bundle bundle = getIntent().getExtras();
String name = bundle.getString("name");
```
3. 接收返回结果
如果需要从被启动的Activity(Activity2)返回结果到启动它的Activity(MainActivity),可以使用`startActivityForResult()`方法启动Activity2,并在Activity2中通过`setResult()`设置返回结果。在MainActivity中重写`onActivityResult()`来处理返回的数据:
```java
// Activity2中设置返回结果
Intent intent = getIntent();
Bundle bundle2 = new Bundle();
bundle2.putString("name", "ThisisfromShowMsg!");
intent.putExtras(bundle2);
setResult(RESULT_OK, intent);
// MainActivity中接收结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_CANCELED) {
setTitle("cancle");
} else if (resultCode == RESULT_OK) {
String temp = data.getStringExtra("name");
// 处理返回的数据
}
}
}
```
其中,`REQUEST_CODE`是你自定义的一个整数值,用于识别不同的启动请求,`RESULT_OK`表示Activity2正常结束,而`RESULT_CANCELED`表示被取消。
Intent的使用还包括显式Intent和隐式Intent,显式Intent是明确指定目标组件的,而隐式Intent则是通过指定动作(Action)、数据(Data)、类别(Category)等信息,让系统找到合适的组件来处理。此外,Intent还可以用于启动Service,BroadcastReceiver等其他组件,实现更复杂的跨组件通信。
理解并熟练运用Intent是Android开发的基础,它能帮助你构建流畅的用户交互和高效的应用架构。
2010-04-27 上传
2022-07-04 上传
2020-09-01 上传
2016-01-23 上传
2016-03-21 上传
2011-12-20 上传
2012-04-10 上传
2014-09-14 上传
zhenyunyuan
- 粉丝: 4
- 资源: 12
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录