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