要实现Android即时应用的StartActivityForResult功能,你可以按照以下步骤进行操作:
创建一个新的Activity,用于接收返回的结果。例如,我们可以创建一个名为ResultActivity
的Activity,并在其布局文件中添加一个用于显示结果的TextView。
在需要启动另一个Activity并获取结果的地方,使用startActivityForResult()
方法启动目标Activity,并传递一个请求码(requestCode)。例如,我们可以在MainActivity中的按钮点击事件中添加以下代码:
// 在MainActivity中的按钮点击事件中
Intent intent = new Intent(MainActivity.this, TargetActivity.class);
startActivityForResult(intent, 1);
setResult()
方法设置要返回的结果。例如,我们可以在TargetActivity的某个按钮点击事件中添加以下代码:// 在TargetActivity中的按钮点击事件中
Intent resultIntent = new Intent();
resultIntent.putExtra("result", "Hello from TargetActivity!");
setResult(Activity.RESULT_OK, resultIntent);
finish();
onActivityResult()
方法,该方法会在目标Activity返回结果后被调用。可以在该方法中获取返回的结果并进行相应的处理。例如,我们可以在ResultActivity中添加以下代码:@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
String result = data.getStringExtra("result");
// 在ResultActivity中显示返回的结果
TextView textView = findViewById(R.id.text_view_result);
textView.setText(result);
}
}
这样,当目标Activity返回结果后,会自动调用ResultActivity的onActivityResult()
方法,并在TextView中显示返回的结果。
请注意,在目标Activity中使用setResult()
方法设置结果后,需要调用finish()
方法关闭目标Activity,否则onActivityResult()
方法不会被调用。同时,要确保使用相同的请求码(requestCode)来启动目标Activity和在onActivityResult()
方法中进行判断,以确保处理正确的结果。