使用 SafeArgs 将参数从片段传递到活动

0 android kotlin android-safe-args android-navigation-graph

使用导航图,当我从片段导航到活动并使用 safeargs 传递参数时,在活动中,我无法获取参数。我怎样才能得到从片段传递的参数???

在片段中,我可以通过getArgument()函数获取参数,但不能在活动中获取参数。

在片段中,我通过以下方式切换到另一个活动:

findNavController().navigate(AFragmentDirections.actionAFragmentToBActivity(1)
Run Code Online (Sandbox Code Playgroud)

并在 B 活动中通过以下方式获取 onCreate 中的参数:

val args = BActivityArgs.fromBundle(savedInstanceState!!)
Run Code Online (Sandbox Code Playgroud)

但我的应用程序立即崩溃。

小智 5

接受的答案并不是问题的答案。正如您所指出的:您不能getArguments()在您的 中使用Activity,只能在片段中使用。但是,在活动中您可以获取如下数据(java 语法):

String aField = BActivityArgs.fromBundle(getIntent().getExtras()).getAField()
Run Code Online (Sandbox Code Playgroud)

因此,如果接收端有的话,只需替换getArguments()为。getIntent().getExtras()Activity