传统的写法就是使用startActivityForResult()方法传入intent和请求码,然后会回调到onActivityResult()中,在这里面进行返回数据的处理。使用Activity Result API的话,SecondActivity的代码是不用修改的,如下: classSecondActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) {super.onCreat...
classFirstActivity:AppCompatActivity() {privatevalrequestDataLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->if(result.resultCode == RESULT_OK) {valdata= result.data?.getStringExtra("data")// Handle data from SecondActivity} }overridefunonCreate(saved...
在介绍如何使用之前,先为大家介绍Activity Results API 中两个重要的组件:ActivityResultContract和ActivityResultLauncher。 ActivityResultContract: 协议,它定义了如何传递数据和如何处理返回的数据。ActivityResultContract是一个抽象类,你需要继承它来创建自己的...
api-version query True string 用戶端 API 版本。 回應 展開資料表 名稱類型Description 200 OK ActivityListResult 確定 Other Status Codes ErrorResponse 描述作業失敗原因的自動化錯誤回應。 安全性 azure_auth Azure Active Directory OAuth2 Flow 類型: oauth2 Flow: implicit 授權URL: https://login....
一、Activity Results API简介 Activity Results API是Android Jetpack库的一部分,用于替代传统的startActivityForResult()和onActivityResult()方法。这个API使得Activity之间的结果传递更加简洁、易用。通过使用Activity Results API,开发者可以以异步方式处理返回的结果,避免阻塞主线程,提高应用的响应性能。 二、使用Activity...
使用Activity Results API 获取Activity返回的结果1.首先,在app下的build.gradle中加入依赖:implementation 'androidx.activity:activity:1.2.0-beta01'implementation 'androidx.fragment:fragment:1.3.0-beta01'2.定义协议新建一个Contract类,继承自ActivityResultContract<I,O>,其中,I是输入的类型,O是输出的类型。需要...
ActivityResult API 通过使用注册回调的方式,使代码更加清晰和简单,数据类型安全方面做得到保障。 基本使用及特征 class MainActivity : Activity() { val pickContact = registerForActivityResult(ActivityResultContracts.PickContact()) { uri: Uri? ->
Activity Results API 是 Google官方推荐的Activity、Fragment获取返回结果的方式。ActivityResultContract是一个抽象类,也是我们需要定义的协议,它需要去定义如何传递数据和如何处理返回的数据。 简单效果演示: 1.引入扩展库依赖: 我们所需的核心类ActivityResultContract来自于这个扩展库。
使用Activity Result API进行跳转新页面回传数据,操作分为两步: 1、通过registerForActivityResult方法定义一个函数处理回传数据; 2、通过launch()进行新页面的跳转。 示例: //使用registerForActivityResultvalsecondLauncher=registerForActivityResult(ActivityResultContracts.StartActivityForResult()){if(it.resultCode=...