Activity的跳转及返回值 的四种方法

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/

点赞(20) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部