android 当我从Kotlin的本地库按下返回按钮时,应用程序关闭

jfewjypa  于 2023-04-04  发布在  Android
关注(0)|答案(1)|浏览(132)

我在“活动”上,在那里调用“本地存储库”。

fun selectGallery() {
            val readPermission = ContextCompat.checkSelfPermission(
                this,
                Manifest.permission.READ_EXTERNAL_STORAGE
            )

            // 권한 확인
            if (readPermission == PackageManager.PERMISSION_DENIED) {
                // 권한 요청
                ActivityCompat.requestPermissions(
                    this,
                    arrayOf(
                        Manifest.permission.READ_EXTERNAL_STORAGE
                    ),
                    100
                )
            } else {

                var intent = Intent(Intent.ACTION_PICK)
                intent.data = MediaStore.Images.Media.EXTERNAL_CONTENT_URI
                intent.type = "image/*"

                startActivityForResult(intent, 2000)
            }
        }

        binding.editAvatar.setOnClickListener {
            selectGallery()
        }

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

        when (requestCode) {
   
            2000 -> {
                // 사진 가져오기
                selectedAvatarURI = data?.data!!

                Glide.with(this)
                    .load(selectedAvatarURI)
                    .into(binding.avatarImage)

                editFillClass.avatarFill.value = true

            }
        }
    }

这段代码运行良好。
当我点击一个按钮时,本 matplotlib 屏幕打开。
但在那里,如果我按下后退按钮,应用程序被杀死。
奇怪的是相同的代码在另一个Fragment中使用。
在那里,应用程序没有关闭,即使我按下返回按钮。
它会转到上一个片段页面。
为什么会发生这种情况,当我按下后退按钮时,我如何才能使画廊屏幕关闭?

0md85ypi

0md85ypi1#

你需要检查结果,最有可能的data是null:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

        when (requestCode) {
   
            2000 -> {
                // 사진 가져오기
                selectedAvatarURI = data?.data
                if (selectedAvatarURI != null) {
                    Glide.with(this)
                        .load(selectedAvatarURI)
                        .into(binding.avatarImage)

                    editFillClass.avatarFill.value = true
                }
            }
        }
    }

相关问题