首页
学习
活动
专区
圈层
工具
发布

Android startActivityForResult用法

一、介绍 当我们在第一个Activity打开第二个Activity时,第二个Activity关闭并想返回数据给第一个Activity时,我们就可以使用startActivityForResult进行传值...用到的几个方法介绍: 1. startActivityForResult(Intent intent, int requestCode) requestCode:如果> = 0,当Activity...二、示例 1、使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,为了得到传回的数据,必须在Activity...onClick里面实现/直接按Back键返回,需要重写onBackPressed方法 setResult()方法的第一个参数值可以根据业务需要自己定义,上面代码中使用到的RESULT_OK是系统Activity...跳转到另一个Activity后,Activity在其finish()动作或者back动作后,会回调主Activity的onActivityResult()方法。

70420

你好,Activity Results API!

背景 在Android应用程序开发中,启动一个Activity不一定是单项操作,从启动的Activity获取数据是常见的场景,最传统的方式是通过Intent携带数据,然后使用startActivityForResult...方法来启动下一个Activity,然后通过onActivityResult来接收返回的结果,代码如下: 调用startActivityForResult方法启动 startActivityForResult...最后,调用启动器的launch方法开启界面跳转 MainActivity中添加一个Button,点击Button时,调用launch方法跳转: button.setOnClickListener {...因为,使用生命周期组件,LifecycleOwner 会在 Lifecycle 被销毁时自动移除已注册的启动器。...另外,startActivityForResult和onActivityResult已经被废弃,官方也是强烈建议使用这种方式来进行数据传递并获取Activity返回的数据。

2.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    你好,Activity Results API!

    背景 在Android应用程序开发中,启动一个Activity不一定是单项操作,从启动的Activity获取数据是常见的场景,最传统的方式是通过Intent携带数据,然后使用startActivityForResult...方法来启动下一个Activity,然后通过onActivityResult来接收返回的结果,代码如下: 调用startActivityForResult方法启动 startActivityForResult...最后,调用启动器的launch方法开启界面跳转 MainActivity中添加一个Button,点击Button时,调用launch方法跳转: button.setOnClickListener {...因为,使用生命周期组件,LifecycleOwner 会在 Lifecycle 被销毁时自动移除已注册的启动器。...另外,startActivityForResult和onActivityResult已经被废弃,官方也是强烈建议使用这种方式来进行数据传递并获取Activity返回的数据。

    2K40

    安卓开发_startActivityForResult的详细用法

    一个需求:一个activity到另一个activity进行一些设置,返回第一个activity的时候 获取第二个activity设置的数据 百度了一下,发现startActivityForResult这个很完美的符合了我的效果要求...()动作或者back动作后,将设置的值回传给第一个页面,从而第一个页面来显示所得到的值。...这个有一点像回调方法,就是在第二个页面finish()动作或者back动作后,会回调第一个页面的onActivityResult()方法。...请求码的作用     使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,我们需要为startActivityForResult...结果码的作用 在一个Activity中,可能会使用startActivityForResult()方法打开多个不同的Activity处理不同的业务,当这些新Activity关闭后,系统都会调用前面Activity

    1.1K60

    Jetpack:使用 ActivityResult 处理 Activity 之间的数据通信

    在Android中,我们如果想在Activity之间双向传递数据,需要使用startActivityForResult启动,然后在onActivityResult中处理返回,另外申请权限也是类似的步骤。...在Jetpack提供的已封装好的ActivityResultContract有(都是ActivityResultContracts的子类): (1)StartActivityForResult public...> 最简单的,相当于传统方式的startActivityForResult,只不过将onActivityResult的几个参数封装成一个ActivityResult public ActivityResult...lifecycle = lifecycleOwner.getLifecycle(); if (lifecycle.getCurrentState().isAtLeast(Lifecycle.State.STARTED...往下可以看到是通过lifecycle这个功能实现的,为启动的context(如activity)添加一个Observer,在Observer中发现是在onStart这个事件里处理的返回。

    1.7K30

    Android开发之Activity的创建跳转及传值

    我们把这个工程中创建的一个新的Activity,然后再有Hello World中添加一个按钮,点击按钮跳转到我们创建的新的Activity中。在新的按钮中点击Back返回到上一个Activity中。...intent.putExtra("extra_data", data); (3) 在新的Activity中我们需要获取传过来的值显示在TextView上,并且点击一个Back按钮返回到上一层Activity...点击SecondActivity中的Back按钮就会执行finish()方法返回上一个Activity。 ? 2....(1)跳转时通过startActivityForResult()方法来进行值得回传,第一个参数就是intent对象,第二个参数是requestCode(请求码)。...Button backButton = (Button) findViewById(R.id.third_back_button); backButton.setOnClickListener

    3.9K100

    Activity Result API详解,是时候放弃startActivityForResult了「建议收藏」

    我个人的观点是,startActivityForResult()方法并没有什么致命的问题,只是Activity Result API在易用性和接口统一性方面都做得更好。...所以我刚才说了,startActivityForResult()方法并没有什么致命的问题。 那么接下来我们学习一下如何使用Activity Result API来实现同样的功能。...FirstActivity中的代码,我们需要使用Activity Result API来替代startActivityForResult()的写法,如下所示: class FirstActivity :...现在你已经知道,Activity Result API是可以完全取代startActivityForResult()方法的。...这是以前使用startActivityForResult()方法时的传统写法。 而Activity Result API是没有地方让你传入requestCode的。

    1.5K30
    领券