Cuando un usuario presiona btnOpen
en el FirstFragment, creará una actividad. Cuando hace clic en btnDone
en SecondActivity, debe cerrar la actividad y devolver una String
al fragmento.
Primer Fragmento.kt
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { btnOpen.setOnClickListener { var someActivityResultLauncher = registerForActivityResult( StartActivityForResult(), ActivityResultCallback<ActivityResult> { result -> println(result.data) }) val intent = Intent(context, SecondActivity::class.java) activityLauncher.launch(intent) } }
SecondActivity.kt
override fun onCreate(savedInstanceState: Bundle?) { btnDone.setOnClickListener{ val intent = Intent(this@InputAmountActivity,FirstFragment::class.java) intent.putExtra("Total","some data") finish() } }
Me estoy volviendo nulo cuando intento imprimir result.data
. ¿Cómo obtengo exactamente el valor del total
de SecondActivity?
En este momento, está creando un Intent
y luego simplemente desechándolo sin hacer nada con él. Debe usar setResult()
para enviarlo de regreso a su primera actividad:
btnDone.setOnClickListener{ val intent = Intent(this@InputAmountActivity,FirstFragment::class.java) intent.putExtra("Total","some data") setResult(Activity.RESULT_OK, intent) finish() }