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

Activity是Android的核心组件之一,用于展示UI和处理用户操作。在开发中,经常需要跳转到其他界面并获取返回值。本文将介绍四种跳转和返回值的方法,包括显式Intent、隐式Intent、startActivityForResult()和 setResult()方法,并提供示例代码说明。

一、显式Intent

1.1 概念

显式Intent是指明了要启动的目标Activity类名的Intent,这种Intent用于在同一个应用程序中的Activity之间进行跳转。

1.2 示例代码

下面是一个简单的示例代码,说明如何使用显式Intent进行Activity跳转:

//启动目标Activity

Intent intent = new Intent(this, TargetActivity.class);

startActivity(intent);

//在目标Activity中返回数据

Intent data = new Intent();

data.putExtra("result", "返回结果");

setResult(RESULT_OK, data);

finish();

TargetActivity需要在AndroidManifest.xml文件中进行注册。

1.3 分析说明

首先,我们创建一个Intent对象,并将目标Activity的类名以参数的形式传入。接着,在启动Activity时,调用startActivity()方法,并将Intent对象作为参数传入。在目标Activity中,我们创建一个新的Intent对象,将返回值作为附加数据加入到Intent中,并使用setResult()方法将结果传递回原始Activity。setResult()方法接收两个参数,第一个参数为整型值,用于表示是否成功返回数据。使用RESULT_OK表示成功返回数据。第二个参数为Intent对象,用于传递返回值。

二、隐式Intent

2.1 概念

隐式Intent是没有明确指定要启动的Activity类名的Intent,而是指定了Intent的动作(Action)和数据(Data),系统会根据这些信息进行匹配,并启动合适的Activity。

2.2 示例代码

下面是一个简单的示例代码,说明如何使用隐式Intent进行Activity跳转:

//创建Intent对象

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setData(Uri.parse("http://www.example.com"));

startActivity(intent);

//在目标Activity中返回数据

Intent data = new Intent();

data.putExtra("result", "返回结果");

setResult(RESULT_OK, data);

finish();

2.3 分析说明

我们首先创建了一个Intent对象,并指定了Intent的动作和数据。在这个例子中,我们将动作指定为Intent.ACTION_VIEW,表示要打开一个网页。数据使用Uri.parse()方法将一个网址字符串转换为一个Uri对象。接着,我们调用startActivity()方法启动Activity。在目标Activity中,我们使用setResult()方法传递返回值,和显式Intent方式相同。

三、startActivityForResult()

3.1 概念

startActivityForResult()方法是一种在原始Activity中启动目标Activity的方法,可以在启动目标Activity时传递一些参数,并在目标Activity结束时返回一个结果。

3.2 示例代码

下面是一个简单的示例代码,说明如何使用startActivityForResult()方法进行Activity跳转:

//启动目标Activity

Intent intent = new Intent(this, TargetActivity.class);

intent.putExtra("input", "传递参数");

startActivityForResult(intent, 1);

//在目标Activity中返回数据

Intent data = new Intent();

data.putExtra("result", "返回结果");

setResult(RESULT_OK, data);

finish();

3.3 分析说明

我们创建一个Intent对象,并将目标Activity的类名以参数的形式传入。接着,在启动Activity时,调用startActivityForResult()方法,并将Intent对象和请求码作为参数传入。请求码是一个整型值,用于在目标Activity返回值时区分返回的数据。在目标Activity中,我们使用setResult()方法传递返回值,并调用finish()方法结束Activty,返回原始Activity。

四、setResult()方法

4.1 概念

setResult()方法是一种在目标Activity中传递返回值给原始Activity的方法。

4.2 示例代码

下面是一个简单的示例代码,说明如何使用setResult()方法进行Activity返回值:

//在目标Activity中返回数据

Intent data = new Intent();

data.putExtra("result", "返回结果");

setResult(RESULT_OK, data);

finish();

4.3 分析说明

在目标Activity中,我们创建一个新的Intent对象,将返回值作为附加数据加入到Intent中,并使用setResult()方法将结果传递回原始Activity。setResult()方法接收两个参数,第一个参数为整型值,用于表示是否成功返回数据。使用RESULT_OK表示成功返回数据。第二个参数为Intent对象,用于传递返回值。

总结

本文介绍了四种Activity跳转和获取返回值的方法,包括显式Intent、隐式Intent、startActivityForResult()和setResult()方法,提供了详细的示例代码说明。选择哪种方式主要取决于具体的业务需求和使用场景。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(59) 打赏

评论列表 共有 0 条评论

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