0

我的应用程序首先加载MainFragment到 UI,当单击按钮时,转到NewCodeFragmentUI。

NewCodeFragmentUI 上,当单击另一个按钮时,返回UI,使用MainFragment名为newCodeSafe Args的 arg 。

我的问题是当我运行该应用程序时,出现如下错误:

错误行:

val newCode = MainFragmentArgs.fromBundle(requireArguments()).newCode

日志信息:

java.lang.IllegalArgumentException: Required argument "newCode" is missing and does not have an android:defaultValue

所以我添加android:defaultValue="@null"如下:

<fragment
    android:id="@+id/mainFragment"
    android:name="com.cementcaibird.astock.main.MainFragment"
    android:label="MainFragment" >
    <action
        android:id="@+id/action_mainFragment_to_newCodeFragment"
        app:destination="@id/newCodeFragment" />
    <argument
        android:name="newCode"
        app:argType="string"
        app:nullable="true"
        android:defaultValue="@null" />
</fragment>

但我现在无法构建我的应用程序。

问题出在哪里以及如何解决?我想将newCode从发送NewCodeFragmentMainFragment

错误行:(删除“newCode”,错误消失)

newCodeViewModel.navigateToMainFragment.observe(viewLifecycleOwner, { newCode ->
    this.findNavController()
        .navigate(NewCodeFragmentDirections
            .actionNewCodeFragmentToMainFragment("newCode"))
})

“构建”信息:

Too many arguments for public open fun actionNewCodeFragmentToMainFragment(): NewCodeFragmentDirections.ActionNewCodeFragmentToMainFragment defined in com.cementcaibird.astock.newcode.NewCodeFragmentDirections
4

0 回答 0