Activity的跳转及返回值的四种方法
在Android开发中,Activity的跳转及返回值是非常常见的操作。下面将介绍四种常用的方法来实现Activity的跳转及返回值。
1. startActivityForResult方法:
startActivityForResult方法是用于启动一个目标Activity,并可以通过设置requestCode来标识此次启动。目标Activity在结束后,可以通过setResult方法来设置返回的结果,并且会调用当前Activity的onActivityResult方法来接收返回的结果。
1.1 在当前Activity中启动目标Activity:
```java
Intent intent = new Intent(MainActivity.this, TargetActivity.class);
startActivityForResult(intent, requestCode);
```
其中,requestCode是一个整数,用于标识启动目标Activity的请求。
1.2 在目标Activity中设置返回结果:
```java
Intent intent = new Intent();
intent.putExtra("key", value);
setResult(resultCode, intent);
finish();
```
其中resultCode是一个整数,用于标识返回结果的状态,可以自定义。
1.3 在当前Activity中接收返回结果:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == requestCode) {
if (resultCode == RESULT_OK) {
String result = data.getStringExtra("key");
// 处理返回结果
}
}
}
```
在onActivityResult方法中,可以根据requestCode和resultCode来判断返回结果的状态,并获取传递的数据。
2. startActivityForResult方法配合setResult方法和finish方法使用:
这种方法与前一种方法类似,只是在目标Activity中不再设置返回结果,而是直接调用finish方法结束。
2.1 在当前Activity中启动目标Activity:
```java
Intent intent = new Intent(MainActivity.this, TargetActivity.class);
startActivityForResult(intent, requestCode);
```
2.2 在目标Activity中结束:
```java
finish();
```
2.3 在当前Activity中接收返回结果:
```
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == requestCode && resultCode == RESULT_OK) {
// 处理返回结果
}
}
```
在onActivityResult方法中,只需要根据requestCode判断返回结果的状态。
3. setResult方法配合finish方法使用:
这种方法适用于不需要在当前Activity中接收返回结果的情况,只需要将结果传递给上一个Activity。
3.1 在当前Activity中设置返回结果:
```java
Intent intent = new Intent();
intent.putExtra("key", value);
setResult(resultCode, intent);
finish();
```
3.2 在上一个Activity中接收返回结果:
在上一个Activity中可以通过重写onActivityResult方法来接收返回结果,代码与前面的第一种方法相同。
4. startActivity方法:
startActivity方法用于启动一个目标Activity,但不期望获得返回结果。
4.1 在当前Activity中启动目标Activity:
```java
Intent intent = new Intent(MainActivity.this, TargetActivity.class);
startActivity(intent);
```
这种方法不需要在当前Activity中设置返回结果的处理。
综上所述,通过以上四种方法,我们可以实现Activity的跳转及返回值的操作。使用startActivityForResult方法可以在目标Activity结束后,获取返回结果;使用setResult方法配合finish方法可以将结果传递给上一个Activity;而使用startActivity方法则不需要处理返回结果。根据具体的业务需求,可以选择合适的方法来实现Activity的跳转及返回值。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复