startActivityForResult
是 Android 中一种常用的 Activity 之间通信方式,它允许你从一个 Activity 启动另一个 Activity,并在第二个 Activity 完成操作后返回结果给第一个 Activity。以下是如何使用 startActivityForResult
实现多个 Activity 之间的交互:
- 在第一个 Activity(发起请求的 Activity)中,使用
startActivityForResult
方法启动第二个 Activity:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivityForResult(intent, REQUEST_CODE);
这里的 REQUEST_CODE
是一个整数常量,用于标识该请求。你可以根据需要定义不同的请求码。
- 在第二个 Activity(被启动的 Activity)中,处理完操作后,使用
setResult
方法设置结果,并调用finish
方法关闭 Activity:
Intent resultIntent = new Intent(); resultIntent.putExtra("result_key", "result_value"); setResult(RESULT_OK, resultIntent); finish();
这里的 result_key
和 result_value
分别表示结果的键和值。你可以根据需要自定义这些值。
- 在第一个 Activity 中,重写
onActivityResult
方法以接收第二个 Activity 返回的结果:
@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) { String result = data.getStringExtra("result_key"); // 处理结果 } }
这里的 requestCode
和 resultCode
分别表示请求码和结果码。当 requestCode
与发起请求时的请求码相等,且 resultCode
为 RESULT_OK
时,你可以从 data
Intent 中获取返回的结果,并进行相应的处理。
通过以上步骤,你可以实现多个 Activity 之间的交互。如果需要与更多 Activity 交互,只需按照相同的方式启动新的 Activity 并处理返回的结果即可。