android - 使用 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);
}
解决方案
如果您的 UID 对您的活动来说是全局的,那么您根本不应该使用 Fragment 参数。片段可以调用requireActivity().getIntent().getStringExtra("UID")
以从 Activity 中检索额外内容。
推荐阅读
- node.js - 找不到模块
- java - 根据输入模式构造和计算树高
- python - Keras Tokenizer num_words 指定了什么?
- python - SQL 将 where 子句应用于任意查询结果
- google-cloud-platform - 使用 Terraform 将对象从一个 GCS 存储桶移动到另一个存储桶
- python - 将 Python Pickle 文件从 S3 存储桶加载到 Sagemaker Notebook
- security - SSL 会影响 socket.io 应用程序的性能吗?
- c# - C# C0246 使用来自 SQL Server 的列表框过滤 DataGridView 时
- gitlab-ci - Gitlab Ci 并不总是获得最新版本的依赖项
- cookies - 无法获取 cookie。稍后尝试 cookie 生成