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/
发表评论 取消回复