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

Activity的跳转及返回值是Android开发中非常常见的场景,通过不同的方法可以实现Activity之间的跳转和传递数据,并且可以获取返回值。本文将介绍四种常用的方法,并给出相应的案例说明。

1. startActivity()方法

startActivity()是最基本的跳转方法,用于将一个Activity跳转到另一个Activity。在跳转过程中,可以通过Intent传递数据。跳转后的Activity可以通过getIntent()方法获取传递的数据。

示例代码如下所示:

```java

// 在FirstActivity中跳转到SecondActivity,并传递数据

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);

intent.putExtra("key", "value");

startActivity(intent);

// 在SecondActivity中获取传递的数据

Intent intent = getIntent();

String data = intent.getStringExtra("key");

```

2. startActivityForResult()方法

startActivityForResult()方法允许一个Activity跳转到另一个Activity,并且可以在跳转结束后,获取跳转的结果。在跳转过程中,可以通过Intent传递数据。跳转后的Activity可以通过setResult()方法设置结果,并通过finish()方法回到上一个Activity。

示例代码如下所示:

```java

// 在FirstActivity中跳转到SecondActivity,并传递数据

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);

intent.putExtra("key", "value");

startActivityForResult(intent, requestCode);

// 在SecondActivity中获取传递的数据,并返回结果

Intent intent = getIntent();

String data = intent.getStringExtra("key");

// 设置结果,并结束当前Activity

Intent intent = new Intent();

intent.putExtra("result", "success");

setResult(Activity.RESULT_OK, intent);

finish();

// 在FirstActivity中获取跳转结果

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == requestCode && resultCode == Activity.RESULT_OK) {

String result = data.getStringExtra("result");

// 处理跳转结果

}

}

```

3. setResult()方法

setResult()方法用于在一个Activity中设置跳转结果,并通过Intent传递数据。在调用finish()方法结束当前Activity后,上一个Activity的onActivityResult()方法会被调用,通过resultCode和data参数获取跳转的结果和数据。

示例代码如下所示:

```java

// 在SecondActivity中设置结果,并返回数据

Intent intent = new Intent();

intent.putExtra("result", "success");

setResult(Activity.RESULT_OK, intent);

finish();

// 在FirstActivity中获取跳转结果

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == Activity.RESULT_OK) {

String result = data.getStringExtra("result");

// 处理跳转结果

}

}

```

4. startActivityForResult()方法配合回调接口

可以通过定义回调接口,实现在跳转的Activity中获取返回值,并回调给上一个Activity进行处理。这种方法比较灵活,可以更好地控制跳转过程和数据的传递。

示例代码如下所示:

```java

// 定义回调接口

public interface OnActivityResultListener {

void onResult(int resultCode, Intent data);

}

// 在FirstActivity中跳转到SecondActivity,并通过回调接口获取结果

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);

intent.putExtra("key", "value");

startActivityForResult(intent, requestCode, new OnActivityResultListener() {

@Override

public void onResult(int resultCode, Intent data) {

if (resultCode == Activity.RESULT_OK) {

String result = data.getStringExtra("result");

// 处理跳转结果

}

}

});

// 在SecondActivity中设置结果,并返回数据

Intent intent = new Intent();

intent.putExtra("result", "success");

setResult(Activity.RESULT_OK, intent);

finish();

```

通过上述四种方法,可以灵活地实现Activity之间的跳转和传递数据,并进行结果的返回和处理。不同的方法适用于不同的场景,根据实际需求选择合适的方法可以提高开发效率和用户体验。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(91) 打赏

评论列表 共有 0 条评论

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