在Android开发中,startActivityForResult()是一个用来启动一个新的Activity并且在新的Activity关闭后返回结果的方法。该方法可以用于在不同的Activity之间进行数据的传递和返回结果的处理。
基本用法如下:
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
其中,第一个参数为当前的Context,第二个参数为要启动的Activity的class,第三个参数为一个用来标识请求的唯一的整数值。
Intent intent = new Intent();
intent.putExtra("result", "Hello World");
setResult(RESULT_OK, intent);
其中,第一个参数为返回的结果码,一般使用RESULT_OK表示成功,第二个参数为包含返回数据的Intent对象。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String result = data.getStringExtra("result");
// 处理返回的结果
}
}
其中,requestCode参数为请求的标识,resultCode参数为返回的结果码,data参数为包含返回数据的Intent对象。根据requestCode和resultCode来处理返回的结果。
需要注意的是,被启动的Activity如果被用户手动关闭(按下返回键)而不是通过setResult()方法设置返回结果,则resultCode将为RESULT_CANCELED,表示操作取消。
以上就是Android startActivityForResult的基本用法。通过该方法可以方便地进行Activity之间的数据传递和返回结果的处理。