104科技
当前位置: 首页 网络知识

Android startActivityForResult实例详解

时间:2023-08-03 作者: 小编 阅读量: 1 栏目名: 网络知识

然后通过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的使用方法和实例详解。