BottomNavigation with NavController 没有 retrieve/parse 参数正确
BottomNavigation with NavController doesn't retrieve/parse arguments correctly
我在使用 BottomNavigation 和 NavigationUI 检索 Fragment 中的参数时遇到了一些问题。我在导航到 addOrderFragment(picture) 后检索到空值。我不知道为什么这不起作用。
导航布局:http://prntscr.com/pf9tl1
Activity 布局:http://prntscr.com/pf9u4q
Activity 布局有一个 NavHost 片段,其中所有其他布局都被放大并且该片段中的导航工作正常。
主要activity
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);
}
如果您的 UID 对于您的 activity 是全局的,您根本不应该使用 Fragment 参数。片段可以调用 requireActivity().getIntent().getStringExtra("UID")
从 Activity.
中检索额外内容
我在使用 BottomNavigation 和 NavigationUI 检索 Fragment 中的参数时遇到了一些问题。我在导航到 addOrderFragment(picture) 后检索到空值。我不知道为什么这不起作用。
导航布局:http://prntscr.com/pf9tl1
Activity 布局:http://prntscr.com/pf9u4q
Activity 布局有一个 NavHost 片段,其中所有其他布局都被放大并且该片段中的导航工作正常。
主要activity
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);
}
如果您的 UID 对于您的 activity 是全局的,您根本不应该使用 Fragment 参数。片段可以调用 requireActivity().getIntent().getStringExtra("UID")
从 Activity.