Поскольку startActivityForResult
устарел, я пытаюсь заставить новый метод работать.
Это действие A:
launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
Log.d(tagg, "returned")
if (result.resultCode == Activity.RESULT_OK) {
val data: Intent? = result.data
if (data != null) {
if (data.hasExtra("cats")) {
val cats = data.getStringExtra("cats")
}
}
}
}
chooseCategoryButton.setOnClickListener {
val i = Intent(this, ChooseCats::class.java)
launcher.launch(i)
}
активность B:
val finishIntent = Intent()
finishIntent.putExtra("cats", "blaaaaa")
setResult(RESULT_OK, finishIntent)
Это просто не работает! Как это сделать правильно?
Вы создаете свой модуль запуска внутри метода или вы создаете его как переменную-член в вашем классе?
То, что вы видите в действии A, находится внутри OnCreate.
Так же пробовал ставить лаунчер вне OnCreate, а именно над ним