Не вызывается, потому что:
- Вы не устанавливаете результат
- Похоже, вы создаете новое действие вместо того, чтобы завершить текущее (?)
В вашем первом занятии:
private fun launchNewActivity() {
val requestCode = [yourCodeHere]
val intent = Intent(this, ProductDetailsActivity::class.java)
startActivityForResult(intent, requestCode)
}
В вашем втором занятии
private fun passProductAsResult(product: Product) {
val data = Intent()
data.putExtra("product", product.toString());
setResult(Activity.RESULT_OK, data);
finish()
}
Возвращение в ваше первое занятие override
метод onActivityResult
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if(resultCode != Activity.RESULT_OK) return
when(requestCode) {
[yourRequestCode] -> { yourTextView.text = data.getStringExtra("product"); }
// Other result codes
else -> {}
}
}
Убедитесь, что тип данных Serializable
или Parcelable
, если вы используете сложные типы данных.