温馨提示×

Android startActivityForResult的基本用法详解

小云
120
2023-08-10 12:14:31
栏目: 编程语言

在Android开发中,startActivityForResult()是一个用来启动一个新的Activity并且在新的Activity关闭后返回结果的方法。该方法可以用于在不同的Activity之间进行数据的传递和返回结果的处理。

基本用法如下:

  1. 在当前的Activity中调用startActivityForResult()方法来启动一个新的Activity:
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);

其中,第一个参数为当前的Context,第二个参数为要启动的Activity的class,第三个参数为一个用来标识请求的唯一的整数值。

  1. 在被启动的Activity中通过setResult()方法设置返回的结果:
Intent intent = new Intent();
intent.putExtra("result", "Hello World");
setResult(RESULT_OK, intent);

其中,第一个参数为返回的结果码,一般使用RESULT_OK表示成功,第二个参数为包含返回数据的Intent对象。

  1. 在当前的Activity中重写onActivityResult()方法来处理返回的结果:
@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之间的数据传递和返回结果的处理。

0