7

我试图ArrayList<String>在使用 safeArgs 时将 an 作为参数传递。但是当我从可序列化和构建列表中选择 ArrayList 时,它会抛出这些异常

One type argument expected for class ArrayList<E : Any!>
One type argument expected. Use 'ArrayList<*>' if you don't want to pass type arguments

我知道我必须为 ArrayList 设置 dataType,但在从导航图屏幕设置 safeArgs 时,我无法执行此操作,也没有选项。

在导航图 XML 中,代码生成为

<argument
            android:name="teamsToAdd"
            app:argType="java.util.ArrayList" />

有没有办法在导航图的 XML 中声明数据类型?

4

1 回答 1

22

尝试这个:

<argument
    android:name="teamsToAdd"
    app:argType="string[]" />

您还可以Array通过在通过 GUI 生成参数时检查选项来生成它:

在此处输入图像描述

由于这将需要一个字符串数组而不是列表,因此您可以将列表转换为数组:

parameterList.toTypedArray()

然后从一个数组返回:

receivedArray.toList()
于 2020-06-02T06:59:01.783 回答