当用户在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()
}