在activity中使用setFragmentResultListener

问题描述 投票:0回答:1

我的容器

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
        }
}

不起作用。 我确定问题不是片段端,因为使用相同的代码将数据传递到其他片段

有什么办法可以做到这一点吗?

android android-fragments android-activity android-jetpack android-jetpack-navigation
1个回答
0
投票

我猜问题是您在不同的片段管理器中设置片段结果,而不是在支持片段管理器中

你能显示更多代码吗?

setFragmentResult("request code", bundleOf())
这样叫
parentFragmentManager.setFragmentResult("request code", bundleOf()
吗?

尝试,requireActivity().supportFragmentManager.setFragmentResult(...)

如果可行,那么我的猜测是正确的。

© www.soinside.com 2019 - 2024. All rights reserved.