startActivityForResult用法详解
startActivityForResult用法详解
在Android开发中,我们经常需要进行Activity之间的跳转和数据传递。其中一个常用的方法是使用startActivityForResult来启动一个Activity,并且在该Activity结束后返回结果。本文将详细解答startActivityForResult的用法,包括如何启动目标Activity并传递参数,以及如何接收并处理返回的结果。
启动目标Activity并传递参数
要使用startActivityForResult方法启动目标Activity并传递参数,首先需要创建一个Intent对象,并通过putExtra方法将参数添加到Intent中。然后调用startActivityForResult方法并将Intent作为参数传入。
示例代码:
Intent intent = new Intent(MainActivity.this, TargetActivity.class);
intent.putExtra("name", "小明");
intent.putExtra("age", 20);
startActivityForResult(intent, REQUEST_CODE);
在上述示例中,首先创建了一个Intent对象,并指定了要启动的目标Activity为TargetActivity。然后使用putExtra方法将参数"name"和"age"添加到Intent中。最后调用startActivityForResult方法,传入Intent和一个请求码REQUEST_CODE。
接收并处理返回的结果
当目标Activity结束后,会返回到启动它的Activity,并通过onActivityResult方法将结果返回。因此,在启动目标Activity的Activity中需要重写onActivityResult方法,然后根据请求码和结果码来处理返回的结果。
示例代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
String result = data.getStringExtra("result");
// 处理返回的结果
} else if (resultCode == RESULT_CANCELED) {
// 处理取消操作
}
}
}
在上述示例中,首先判断请求码是否和之前启动目标Activity时传入的请求码相同。然后根据结果码来判断操作的结果是成功还是取消。如果结果码为RESULT_OK,表示操作成功,可以通过getStringExtra方法获取返回的结果。如果结果码为RESULT_CANCELED,表示操作被取消,可以进行相应的处理。
总结
startActivityForResult方法是Android开发中一个常用的方法,可以实现Activity之间的跳转和数据传递。通过传递参数和处理返回结果,我们可以在不同的Activity之间进行数据交互,并根据结果进行相应的操作。
希望本文能够详细解答了startActivityForResult的用法,并且能够帮助读者更好地理解和使用这个方法。
上一篇