Android kotlin - приложение перестает работать при отмене выбора галереи - PullRequest
0 голосов
/ 05 сентября 2018

Это код:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_upload_image)

        but.setOnClickListener {
            chooseImage()
        }

    }

    fun chooseImage(){
        val intent = Intent()
        intent.type = "image/*"
        intent.action = Intent.ACTION_GET_CONTENT
        startActivityForResult(Intent.createChooser(intent, "Select Picture"), 1)
    }

public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
        // do stuff
    }else{
        Toast.makeText(this, "CANCELLED", Toast.LENGTH_LONG).show()
    }
}

Я получил requestCode == 1 && resultCode == RESULT_OK && data != null из: приложение вылетает при возврате из галереи без выбора изображения , потому что была та же проблема, но это решение не работает мной, приложение вылетает, когда я нажмите кнопку «Назад» на телефоне вместо выбора изображения. Я что-то пропустил?

1 Ответ

0 голосов
/ 05 сентября 2018

Если действие отменено, тогда data будет null (возвращается приложением галереи), но Kotlin не разрешает null по умолчанию, поэтому возникает проблема.

Чтобы избежать этого, установитеdata как обнуляемый, используя ? как Intent?

public override fun onActivityResult(requestCode: Int,
               resultCode: Int,
               data: Intent?) {
// mark as null type       ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...