繁体   English   中英

使用来自 Activity 的导航传递给片段

[英]Pass to fragment using Navigation from Activity

我有一个包含两个片段的活动。 任一片段都位于活动中的容器上。 活动也有带有设置按钮的工具栏。 我应该通过单击设置按钮使用导航传递设置片段,但我遇到了问题,因为findNavController(R.id.home_nav).navigate(R.id.action_second_fragment_to_settings_fragment)如果我们传递到设置屏幕并且第二个片段是活动的,但从第一次活动开始就会崩溃。 我需要做什么来解决这个问题? 我只使用导航组件中的动作在片段之间传递。 可能有这个任务有用的解决方案

如果您的navController在 MainActivity 中,则使用此代码您可以访问navController并将数据发送到片段。

加载新片段:

    val bundle = Bundle()
    bundle.putString("id", id)

    (activity as MainActivity).navController.navigate(R.id.orderDetailFragment, bundle)

在片段中的onViewCreated中获取数据:

 arguments?.let {

        if (it.getSerializable("id") != null) { 
            val id = it.getString("id")
        }


    }

我希望它有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM