startActivityForResult用法
时间: 2024-01-09 19:50:43 浏览: 95
startActivityForResult() 是 Android 中的一个方法,用于启动一个 Activity 并等待其返回结果。它的基本用法如下:
1. 在调用者(即启动 Activity 的地方)中调用 startActivityForResult() 方法:
```java
Intent intent = new Intent(this, NextActivity.class);
startActivityForResult(intent, requestCode);
```
其中,requestCode 是一个整型值,用于标识这个请求,可以是任意非负整数。
2. 在被启动的 Activity 中,当需要返回结果时,调用 setResult() 方法:
```java
Intent intent = new Intent();
intent.putExtra("result", "这是返回的结果");
setResult(RESULT_OK, intent);
finish();
```
其中,RESULT_OK 是一个常量值,表示操作成功完成;intent.putExtra() 方法用于向调用者传递结果数据。
3. 在调用者中,实现 onActivityResult() 方法,用于接收返回结果:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == requestCode && resultCode == RESULT_OK) {
String result = data.getStringExtra("result");
// 处理返回的结果
}
}
```
其中,requestCode 参数与调用 startActivityForResult() 方法时传入的值相同,resultCode 表示操作是否成功完成,data 中包含了返回结果数据。
通过这种方式,我们可以在启动的 Activity 中进行一些操作,然后将结果返回给调用者,并在调用者中进行处理。
阅读全文