在Android中,startActivityForResult()方法允许你启动一个新的Activity,并且在新的Activity结束后返回结果给调用它的Activity。
首先,在调用startActivityForResult()方法之前,你需要先准备好一个Intent对象,用于启动新的Activity。Intent对象包含了要启动的Activity的类名或者Action。
然后,调用startActivityForResult()方法来启动新的Activity,并传入Intent对象和一个用于标识返回结果的请求码(requestCode)。
int requestCode = 1; // 请求码可以是任意的整数
Intent intent = new Intent(this, SecondActivity.class); // SecondActivity为要启动的Activity
startActivityForResult(intent, requestCode);
在新的Activity中,当任务完成后,你可以通过调用setResult()方法来设置结果数据,并使用Activity的finish()方法来关闭当前Activity。
Intent resultIntent = new Intent();
resultIntent.putExtra("result", "这是返回的结果"); // 可以通过putExtra()方法来传递结果数据
setResult(Activity.RESULT_OK, resultIntent);
finish();
最后,在调用startActivityForResult()方法的Activity中,需要重写onActivityResult()方法来处理返回的结果数据。
@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"); // 获取结果数据
// 处理结果数据
}
}
使用startActivityForResult()方法可以方便地启动一个新的Activity,并获取返回的结果数据。记得在调用startActivityForResult()方法的Activity中重写onActivityResult()方法来处理结果数据。