首页 > 解决方案 > 从 ActivityResult 迁移到 Activity Result API

问题描述

我是编程新手,我正在尝试自己学习一些技术,我已经观看了很多视频新活动结果 Api,并且我正在尝试在我的项目中迁移。一切都很好,但麻烦的是缺少请求代码,请求代码必须做什么或使用。

在项目旧活动结果中尝试裁剪图像

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { /// неед
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK) {
            if (requestCode == REQUEST_GALLERY) {
                data?.data.let {
                    if (it != null) {
                        imageUri = it
                        cropImage(it) }
                }

            } else if (requestCode == UCrop.REQUEST_CROP) {
                val resultUri = data?.let { UCrop.getOutput(it) }
                binding.image.loadUrl(resultUri.toString())
            }
        } else {
            toastMessage(requireContext(), getString(R.string.fail_download_image))
        }
    }

    private fun openGallery() {    /// галлерея
        val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
        startActivityForResult(intent, REQUEST_GALLERY)
    }

在这里我正在迁移 Activirty Result Api

  val resultContract = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){result: ActivityResult? ->
        if (result?.resultCode == Activity.RESULT_OK) {
            if (requestCode == REQUEST_GALLERY) {
                result.data?.data.let {
                    if (it != null) {
                        imageUri = it
                        cropImage(it) }
                }

            } else if (result.requestCode == UCrop.REQUEST_CROP) {
                val resultUri = result.data?.let { UCrop.getOutput(it) }
                binding.image.loadUrl(resultUri.toString())
            }
        } else {
            toastMessage(requireContext(), getString(R.string.fail_download_image))
        }

    }

这里在Activity Result Api request code is unresolved references ,用什么代替request code???

标签: androidkotlinonactivityresult

解决方案


推荐阅读