onActivityResult возвращает нулевые данные - PullRequest
0 голосов
/ 26 ноября 2018

Я просто некоторое время кодировал в kotlin.У меня есть некоторые проблемы.

Он всегда возвращает нулевые данные после того, как я нажимаю на элемент во втором действии.

первая активность

btnClick.setOnClickListener { v ->
        val intent = Intent(applicationContext, NumberPickerActivity::class.java)
        startActivityForResult(intent, 777)
    }



 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    try {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == 777 && resultCode == Activity.RESULT_OK) {
            val result = data?.getStringExtra("picked_product").toString()
            Toast.makeText(applicationContext, result, Toast.LENGTH_SHORT).show()
        }
    } catch (e: Exception) {
        Toast.makeText(applicationContext, e.message, Toast.LENGTH_LONG).show()
    }

}

вторая активность

override fun onItemClick(item: Product) {
         val intent = Intent()
         intent.putExtra("picked_product", item.price)
         setResult(Activity.RESULT_OK, intent)
         finish()
}

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Дополнительное значение, которое вы вводите в свое намерение, представляет собой целое число (item.price).Но вы пытаетесь получить строку data?.getStringExtra("picked_product").

Так как намерение не содержит строку в ключе "picked_product", она возвращает null.

Вы должны попытаться получитьInt extra:

val result = data?.getIntExtra("picked_product")

Ничего общего с вашей проблемой, но делать это бесполезно

data?.getStringExtra("picked_product").toString()

Поскольку он возвращает вам строку, использование toString() бесполезно

0 голосов
/ 26 ноября 2018

Поскольку вы ожидаете Int, сделайте это вместо:

val result = data?.getIntExtra("picked_product", 0) //0 will be used in case no value in data and result is now Integer.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...