需求需要跳转到 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)