我有一个String
类型 arg 从NewCodeFragment
to发送MainFragment
。
如果我设置了一个默认值,那么我会得到一个“参数太多”的错误。
如何设置默认值?我的理解是,如果我发送一个 arg,那么目标片段将接收 arg,否则它将接收默认值。错误的?
问题代码:
navigation
XML:
<argument
android:name="aArg"
app:argType="string"
app:nullable="true"
android:defaultValue="@null" />
fragment.class
:
val aArg="abc"
// build error, it says too many args
this.findNavController().navigate(NewCodeFragmentDirections.actionNewCodeFragmentToMainFragment(aArg))
没有问题的代码:
navigation
XML:
<argument
android:name="aArg"
app:argType="string"
app:nullable="true"/> // remove android:defaultValue="@null"
fragment.class
:
val aArg="abc"
this.findNavController().navigate(NewCodeFragmentDirections.actionNewCodeFragmentToMainFragment(aArg))
另一个没问题的代码:
navigation
XML:
<argument
android:name="aArg"
app:argType="string"
app:nullable="true"
android:defaultValue="@null" />
fragment.class
:
val aArg="abc"
this.findNavController().navigate(NewCodeFragmentDirections.actionNewCodeFragmentToMainFragment()) // remove aArg