首页 > 解决方案 > 使用 NavController 的 BottomNavigation 无法正确检索/解析参数

问题描述

我在使用 BottomNavigation 和 NavigationUI 检索片段中的参数时遇到了一些问题。我在导航到 addOrderFragment(picture) 后检索空值。我不知道为什么这不起作用。

导航布局:http
://prntscr.com/pf9tl1 活动布局:http
: //prntscr.com/pf9u4q 活动布局有一个 NavHost 片段,其中所有其他布局都被夸大了,并且该片段中的导航工作正常。

主要活动

  UID = getIntent().getStringExtra("UID");
    Bundle args = new Bundle();
    args.putString("UID", UID);
    //navigation
    controller = Navigation.findNavController(this, R.id.fragment_container);
    controller.setGraph(R.navigation.navigation_mainmenu, args);
    controller.navigate(R.id.mainMenuFragment, args);
    bottomNav = findViewById(R.id.bottom_navigation);
    NavigationUI.setupWithNavController(bottomNav, controller);

导航到另一个片段后从另一个片段中检索 UID

 controller = Navigation.findNavController(view);
        try {
            UID = getArguments().getString("UID"); <---gets null 
        } catch (Exception e) {
            Crashlytics.logException(e);
        }

标签: androidbottomnavigationviewnavigationcontroller

解决方案


如果您的 UID 对您的活动来说是全局的,那么您根本不应该使用 Fragment 参数。片段可以调用requireActivity().getIntent().getStringExtra("UID")以从 Activity 中检索额外内容。


推荐阅读