安卓startActivityForResult()的用法
时间: 2024-01-09 10:30:52 浏览: 77
在 Android 中,startActivityForResult() 方法用于启动一个新的 Activity,并期望在该 Activity 结束后返回结果到调用它的 Activity。下面是 startActivityForResult() 方法的用法:
1. 在调用 startActivityForResult() 方法之前,你需要创建一个 Intent 对象,用于指定要启动的目标 Activity。
```java
Intent intent = new Intent(MainActivity.this, TargetActivity.class);
// 可以使用 putExtra() 方法添加额外的数据到 Intent 中
intent.putExtra("key", value);
```
2. 调用 startActivityForResult() 方法,并传递 Intent 对象和一个请求码(requestCode)作为参数。
```java
startActivityForResult(intent, REQUEST_CODE);
```
注意:请求码(requestCode)是一个整数值,用于标识该请求的唯一性。你可以在 onActivityResult() 方法中使用它来区分不同的请求。
3. 在目标 Activity 中,当你完成了相应的操作后,需要通过 setResult() 方法设置结果,并指定一个结果码(resultCode)和一个包含返回数据的 Intent 对象(可选)。
```java
Intent resultIntent = new Intent();
resultIntent.putExtra("result_key", resultValue);
setResult(RESULT_OK, resultIntent);
```
4. 目标 Activity 结束后,会返回到调用它的 Activity,并触发 onActivityResult() 方法。在调用它的 Activity 中,你需要重写 onActivityResult() 方法,以接收返回的结果。
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// 处理返回的结果
if (data != null) {
// 从 Intent 中获取返回的数据
String resultValue = data.getStringExtra("result_key");
// 进行相应的处理
}
} else if (resultCode == RESULT_CANCELED) {
// 如果目标 Activity 被取消,则执行相应操作
}
}
}
```
在 onActivityResult() 方法中,你可以根据请求码(requestCode)和结果码(resultCode)来处理不同的请求和结果。如果 resultCode 是 RESULT_OK,表示操作成功完成,你可以从 Intent 中获取返回的数据进行后续处理。如果 resultCode 是 RESULT_CANCELED,表示目标 Activity 被取消,你可以执行相应的操作。
这就是 startActivityForResult() 方法的基本用法,通过这种方式可以实现在不同的 Activity 之间进行数据交互。
阅读全文
相关推荐
















