我刚刚用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()
}
答案 0 :(得分:2)
由于您期望使用Int
,请执行以下操作:
val result = data?.getIntExtra("picked_product", 0) //0 will be used in case no value in data and result is now Integer.
答案 1 :(得分:0)
您打算添加的额外内容是一个整数(item.price
)。但是,您正在尝试检索字符串data?.getStringExtra("picked_product")
。
如果意图在键"picked_product"
上不包含字符串,则返回null
。
您应该尝试获取额外的Int信息:
val result = data?.getIntExtra("picked_product")
与您的问题无关,但没用
data?.getStringExtra("picked_product").toString()
由于它返回了一个字符串,因此toString()
的使用是无用的