然后通过startActivityForResult方法启动了这个Activity,并传入了一个请求码REQUEST_CODE。最后我们调用finish方法结束当前Activity。如果匹配,则通过getStringExtra方法获取返回的结果,并进行进一步处理。
startActivityForResult是一个用于启动其他Activity的方法,并且可以在启动的Activity结束后,将结果返回给调用者的方法。在Android中,使用startActivityForResult启动一个Activity分为两个步骤:
1. 通过Intent指定要启动的Activity,并通过startActivityForResult方法启动它。例如:
```java
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
```
在这个例子中,我们创建了一个Intent对象,并将要启动的Activity指定为SecondActivity。然后通过startActivityForResult方法启动了这个Activity,并传入了一个请求码REQUEST_CODE。
2. 在启动的Activity中,当任务完成后,通过调用setResult方法将结果返回给调用者。例如:
```java
Intent intent = new Intent();
intent.putExtra("key", value);
setResult(RESULT_OK, intent);
finish();
```
在这个例子中,我们创建了一个Intent对象,并将结果通过putExtra方法传递给调用者。然后通过调用setResult方法设置结果码为RESULT_OK,并将Intent作为参数传入。最后我们调用finish方法结束当前Activity。
3. 在调用者Activity中,通过重写onActivityResult方法来处理返回的结果。例如:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String value = data.getStringExtra("key");
// 处理返回的结果
}
}
```
在这个例子中,我们重写了onActivityResult方法,并在其中判断requestCode和resultCode是否匹配。如果匹配,则通过getStringExtra方法获取返回的结果,并进行进一步处理。
以上就是Android startActivityForResult的使用方法和实例详解。