startActivityForResult
时间: 2024-01-09 18:17:18 浏览: 22
`startActivityForResult()`是一个方法,用于启动另一个Activity并等待它返回结果。此方法接收两个参数:第一个参数是一个Intent对象,用于指定要启动的Activity;第二个参数是一个整数值,用于指定请求代码,以便在返回结果时识别它。
当您调用`startActivityForResult()`时,Android系统会启动指定的Activity,并在该Activity完成后返回结果。如果该Activity成功返回结果,则会调用调用者(Activity)的`onActivityResult()`方法,并传递结果代码、请求代码和一个包含结果数据的Intent。在调用`startActivityForResult()`之前,您需要在调用者(Activity)中实现`onActivityResult()`方法,以便处理返回的结果。
以下是`startActivityForResult()`的示例代码:
```
// 启动另一个Activity并等待结果
Intent intent = new Intent(this, AnotherActivity.class);
int requestCode = 1;
startActivityForResult(intent, requestCode);
// 在调用者(Activity)中处理返回的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
// 处理返回的结果
String result = data.getStringExtra("result");
Toast.makeText(this, "Result: " + result, Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_CANCELED) {
// 处理取消操作
Toast.makeText(this, "Canceled", Toast.LENGTH_SHORT).show();
}
}
}
```
在上面的示例中,我们启动了另一个Activity(`AnotherActivity`),并等待它返回结果。在`AnotherActivity`中,我们可以通过调用`setResult()`方法来设置返回的结果。在调用者(Activity)中,我们实现了`onActivityResult()`方法,并在其中处理返回的结果。