andorid多个activity数据回传怎么分别获取
时间: 2023-06-25 14:05:55 浏览: 62
在 Android 中,如果一个 Activity 要向另一个 Activity 返回数据,则可以使用 startActivityForResult 方法启动另一个 Activity。然后在另一个 Activity 中设置 setResult 方法并 finish() 结束该 Activity。
在第一个 Activity 中,可以通过 onActivityResult 方法获取返回的数据。在此方法中,您可以检查请求代码(requestCode)以确定哪个 Activity 返回数据,并检查结果代码(resultCode)以确定操作是否成功。然后,您可以使用获取的数据执行任何必要的操作。
如果您有多个 Activity 需要返回数据,则可以使用不同的请求代码来标识每个 Activity,以便在 onActivityResult 方法中分别处理每个 Activity 的返回数据。
以下是一个示例:
在第一个 Activity 中启动另一个 Activity:
```java
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE_SECOND_ACTIVITY);
```
在第二个 Activity 中设置返回数据并结束 Activity:
```java
Intent intent = new Intent();
intent.putExtra("data", "Hello from SecondActivity");
setResult(Activity.RESULT_OK, intent);
finish();
```
在第一个 Activity 中实现 onActivityResult 方法以处理返回的数据:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_SECOND_ACTIVITY && resultCode == Activity.RESULT_OK) {
String returnedData = data.getStringExtra("data");
Toast.makeText(this, returnedData, Toast.LENGTH_SHORT).show();
}
}
```
在此示例中,使用 REQUEST_CODE_SECOND_ACTIVITY 标识了第二个 Activity。在 onActivityResult 方法中,检查 requestCode 是否等于 REQUEST_CODE_SECOND_ACTIVITY 并检查 resultCode 是否等于 Activity.RESULT_OK(表示操作成功)。然后,使用 data 参数获取返回的数据,并执行必要的操作。