Kotlin-将活动中的数据发送回片段



当用户在FirstFragment中按下btnOpen时,它将创建一个活动。当单击SecondActivity中的btnDone时,它应该关闭活动并将String传递回片段。

FirstFragment.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)
}
}

第二活动.kt

override fun onCreate(savedInstanceState: Bundle?) {
btnDone.setOnClickListener{
val intent = Intent(this@InputAmountActivity,FirstFragment::class.java)
intent.putExtra("Total","some data")
finish()
}
}

我在尝试打印result.data时变为空。如何从SecondActivity中准确获取total的值?

现在您正在创建一个Intent,然后将其丢弃而不进行任何操作。您需要使用setResult()将其实际发送回您的第一个活动:

btnDone.setOnClickListener{
val intent = Intent(this@InputAmountActivity,FirstFragment::class.java)
intent.putExtra("Total","some data")
setResult(Activity.RESULT_OK, intent)
finish()
}

最新更新