rememberLauncherForActivityResult使用示例

需求需要跳转到 CoursexxxActivity ,选择课程,选中课程后,会将课程对象放到返回的intent中

var backIntent = Intent()
backIntent.putExtra("combiPlay", lists[position])

activity?.setResult(CourseWarmUpActivity.courseAddResult, backIntent)
activity?.finish()

那么如何启动这个Activity,并且获取返回的课程内容内

设置intent

val intent = Intent()
intent.apply {
    setClass(
        context, CourseWarmUpActivity::class.java
                                                )
                                            putExtra(
                                                "title", warmup
                                            )
                                            putExtra("tagIds", tagIds)
                                            putExtra("combiPlayTags", it.id)
                                            putExtra(
                                                "selectedCourseId", warmUpCourse?.id ?: -1
                                            )
                                            putExtra("trainerId", courseDetail.trainer?.id)
                                        }

怎么启动intent呢

需要先定义ManagedActivityResultLauncher

定义如何接收结果

val launcherAddWarmup = rememberLauncherForActivityResult(
                    contract = ActivityResultContracts.StartActivityForResult()
                ) { result ->
                    if (result.resultCode == CourseWarmUpActivity.courseAddResult) {
                        result.data?.getParcelableExtra<CourseDetails>("combiPlay")
                            ?.let { courseDetails ->
                                onWarmUpSelect.invoke(courseDetails)
                            }

                    }
                }

然后在需要启动跳转的时候

launcherAddWarmup.launch(intent)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值