Android SafeArgs阵列不兼容
我目前正在探索包括使用SafeArgs在内的方法,但我遇到了一个问题 我尝试在导航上设置数组参数 nav_graph.xmlAndroid SafeArgs阵列不兼容,android,Android,我目前正在探索包括使用SafeArgs在内的方法,但我遇到了一个问题 我尝试在导航上设置数组参数 nav_graph.xml <fragment android:id="@+id/firstFragment"> <action android:id="@+id/action_firstFragment_to_secondFragment"> <argument android:name="args"
<fragment android:id="@+id/firstFragment">
<action android:id="@+id/action_firstFragment_to_secondFragment">
<argument
android:name="args"
app:argType="CustomModel[]" />
</action>
</fragment>
<fragment android:id="@+id/secondFragment">
<argument
android:name="args"
app:argType="CustomModel[]" />
</fragment>
MainActivity.java
private List<CustomModel> dataList = new ArrayList<>();
private void getData() {
// Some API calls
dataList.clear();
dataList.addAll(result.data);
}
private void navigateToNextFragment() {
navHostController.navigate(
FirstFragmentDirections.actionFirstFragmentToSecondFragment(dataList)
);
}
private List dataList=new ArrayList();
私有void getData(){
//一些API调用
dataList.clear();
dataList.addAll(result.data);
}
私有void navigateToNextFragment(){
导航主机控制器(
FirstFragmentDirections.actionFirstFragmentToSecondFragment(数据列表)
);
}
错误是错误:不兼容类型:列表无法转换为CustomModel[]
感谢您的帮助。谢谢大家! 您应该这样定义您的模型:
@Parcelize
data class CustomModel(var name: String, val age: Int): Parcelable
@Parcelize
class CustomModels: ArrayList<CustomModel>(), Parcelable
@Parcelize
数据类CustomModel(变量名称:String,变量年龄:Int):可包裹
@包裹
类CustomModels:ArrayList(),可包裹
并在navgraph中定义:
<argument
android:name="customModels"
app:argType="com.test.test.CustomModels"/>
列表不是数组。。。将列表转换为数组:
dataList.toArray(新的CustomModel[0])