【发布时间】:2021-02-26 13:01:30
【问题描述】:
为什么我不能使用 Jetpack Navigation 添加枚举数组参数? 我做什么:
<fragment
android:id="@+id/my_fragment"
android:name="com.example.MyFragment"
android:label="fragment_my"
tools:layout="@layout/fragment_my">
<argument
android:name="enums"
app:argType="com.example.MyEnum[]" />
</fragment>
但它无法构建,因为发生了这个错误:
Type mismatch: inferred type is Array<MyEnum> but Array<(out) Parcelable!>? was expected
我可以将 Kotlin 的密封类与 @Parcelize 注释一起使用,但这似乎是错误的。在这种情况下我做错了什么?
【问题讨论】:
-
我很好奇,你真的可以在不使用导航组件的情况下实现这一点吗?您可以将枚举类型设置为片段作为参数吗?
-
@a_local_nobody 我不手动创建片段。 Jetpack 导航组件就是这样做的。答案是否定的。
-
我根本不是在谈论导航组件,我是在问您是否要创建一个片段并尝试为其设置一个枚举,这样行吗没有导航组件?因为如果没有,我会说它是有道理的 with 导航组件
-
对,内部使用
Bundle,没有putSerializableArray这样的方法。
标签: android kotlin android-architecture-navigation