andorid多个activity数据回传怎么分别获取
时间: 2023-12-10 08:39:20 浏览: 25
在 Android 中,如果在多个 Activity 之间传递数据,可以使用 startActivityForResult() 方法启动一个 Activity 并等待它返回结果。当被启动的 Activity 完成其工作并准备返回结果时,它会调用 setResult() 方法来设置结果代码和数据。
要获取数据,您可以重写 onActivityResult() 方法。此方法在调用 startActivityForResult() 后返回时被调用。在该方法中,您可以检查返回的结果代码,以确定操作是否成功,并使用数据 Intent 从返回的 Intent 中提取所需的数据。
以下是一个示例,展示如何在两个 Activity 之间传递数据:
在第一个 Activity 中,使用 startActivityForResult() 方法启动第二个 Activity:
```java
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
```
在第二个 Activity 中,当您准备返回结果时,使用 setResult() 方法设置结果代码和数据:
```java
Intent resultIntent = new Intent();
resultIntent.putExtra("data_key", data);
setResult(Activity.RESULT_OK, resultIntent);
finish();
```
在第一个 Activity 中,重写 onActivityResult() 方法,以获取返回的结果:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
// 获取返回的数据
String resultData = data.getStringExtra("data_key");
// 在这里处理返回的数据
}
}
```
请注意,REQUEST_CODE 是在启动 Activity 时提供的请求代码,用于标识返回结果的来源。在 onActivityResult() 方法中,您可以检查 requestCode 是否与您的请求代码匹配,以确保在处理返回结果时只处理所需的结果。