新的 Activity 如何将结果返回给 onActivityResult() 方法
时间: 2024-03-12 08:49:57 浏览: 184
一个新的 Activity 可以通过 startActivityForResult() 方法启动另一个 Activity 并等待该 Activity 返回结果,启动方式如下:
```java
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
```
在启动的 Activity 中,当需要返回结果时,可以使用 setResult() 方法设置返回码和数据,然后调用 finish() 方法关闭该 Activity,如下所示:
```java
Intent intent = new Intent();
intent.putExtra("key", value);
setResult(RESULT_OK, intent);
finish();
```
在调用 finish() 方法后,系统将会自动调用 onActivityResult() 方法,可以在该方法中获取返回的结果,如下所示:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
if (data != null) {
String value = data.getStringExtra("key");
// 处理返回的结果
}
}
}
```
其中,requestCode 是启动时传入的请求码,resultCode 是返回结果的状态码,data 是返回的数据。
阅读全文