我的应用程序首先加载MainFragment
到 UI,当单击按钮时,转到NewCodeFragment
UI。
在NewCodeFragment
UI 上,当单击另一个按钮时,返回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从发送NewCodeFragment
到MainFragment
。
错误行:(删除“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