我的容器
activity
在某些情况下处理导航,如下所示:
fun navigate(directions: NavDirections, extras: Navigator.Extras? = null) {
extras?.let { navController.navigate(directions, extras) }
?: navController.navigate(directions)
}
其中一个
fragments
返回一些数据:
setFragmentResult("request code", bundleOf())
我想在
activity
中得到这个结果,但是
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityHomeBinding.inflate(layoutInflater)
setContentView(binding.root)
supportFragmentManager.setFragmentResultListener("reqeust code", this) { _, _ ->
//do something
}
}
不起作用。 我确定问题不是片段端,因为使用相同的代码将数据传递到其他片段
有什么办法可以做到这一点吗?
我猜问题是您在不同的片段管理器中设置片段结果,而不是在支持片段管理器中
你能显示更多代码吗?
setFragmentResult("request code", bundleOf())
这样叫parentFragmentManager.setFragmentResult("request code", bundleOf()
吗?
尝试,requireActivity().supportFragmentManager.setFragmentResult(...)
如果可行,那么我的猜测是正确的。