掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

startActivityForResult用法详解(参数、作用、用法)

在开发中,Activity之间的跳转和数据传输是一项非常常见的需求。为了更好地处理这一需求,提供了startActivityForResult()方法,用于启动一个子Activity并在其返回时接收数据。本文将详细解释startActivityForResult()的参数及其作用,并通过具体代码示例来说明其使用方法

一、什么是startActivityForResult?

startActivityForResult(Intent intent, int requestCode)是系统中用来启动新的Activity的方法,同时允许父Activity接收子Activity关闭后返回的数据。它与直接使用startActivity(Intent intent)不同,后者无法接收返回结果。

二、参数解析

  1. intent:这是一个Intent对象,用于指定将要启动的目标Activity。它包含了所有必要的信息,如目标Activity的类名称以及任何附加的数据。

  2. requestCode:这是一个整数类型的唯一标识符,用于标识此次请求。当子Activity完成后,系统会调用父Activity的`onActivityResult()`方法,并传递相同的requestCode`以便于区分不同的启动请求。

三、作用

  1. 启动新Activity:通过指定Intent来启动新的Activity。

  2. 等待结果:父Activity可以通过重写`onActivityResult()`方法来处理子Activity返回的结果。

  3. 数据回传:子Activity可以利用`setResult(Intent data)`方法将结果数据打包成Intent返回给父Activity。

四、用法详解

  1. 启动Activity并等待结果

我们需要在父Activity中使用startActivityForResult()来启动子Activity。例如,在一个按钮点击事件中启动子Activity:

button.setOnClickListener(new View.创建Intent对象,指定目标Activity
        Intent intent = new Intent(MainActivity.this, SubActivity.class);
        // 启动子Activity,并等待结果
        startActivityForResult(intent, REQUEST_CODE);
    }
});

在这里,REQUEST_CODE是一个预定义的常量,用于唯一标识这次启动请求。

  1. 处理返回结果

当子Activity完成其任务并关闭时,它会调用setResult()方法返回数据。此时,父Activity的onActivityResult()方法会被触发:

onActivityResult(requestCode, resultCode, data);
    // 检查requestCode是否与之前启动子Activity时的REQUEST_CODE相同
    if (requestCode == REQUEST_CODE) {
        // 检查结果码是否为RESULT_OK,表示操作成功
        if (resultCode == RESULT_OK) {
            // 获取返回的数据
            String result = data.getStringExtra("key");
            // 使用返回的数据进行相应处理
            textView.setText(result);
        }
    }
}

在这个例子中,我们首先检查requestCode是否与预期的值匹配,以确保这是正确的返回结果。接着检查resultCode是否为RESULT_OK,然后从Intent中提取出所需的数据。

startActivityForResult及其配套的onActivityResult方法是开发中实现Activity间数据传递的重要机制。通过合理设置requestCode和处理resultCode及data数据,我们可以灵活地实现不同业务场景下的数据交互需求。

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • 全球天气预报

    支持全球约2.4万个城市地区天气查询,如:天气实况、逐日天气预报、24小时历史天气等

    支持全球约2.4万个城市地区天气查询,如:天气实况、逐日天气预报、24小时历史天气等

  • 购物小票识别

    支持识别各类商场、超市及药店的购物小票,包括店名、单号、总金额、消费时间、明细商品名称、单价、数量、金额等信息,可用于商品售卖信息统计、购物中心用户积分兑换及企业内部报销等场景

    支持识别各类商场、超市及药店的购物小票,包括店名、单号、总金额、消费时间、明细商品名称、单价、数量、金额等信息,可用于商品售卖信息统计、购物中心用户积分兑换及企业内部报销等场景

  • 涉农贷款地址识别

    涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。

    涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。

  • 人脸四要素

    根据给定的手机号、姓名、身份证、人像图片核验是否一致

    根据给定的手机号、姓名、身份证、人像图片核验是否一致

  • 个人/企业涉诉查询

    通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。

    通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。

0512-88869195
数 据 驱 动 未 来
Data Drives The Future