无法解析构造函数 ArrayAdapter(Context, int, int[])

Cannot resolve constructor ArrayAdapter(Context, int, int[])

这是我的代码:

int[] myCards = takeMyCardsFromDB(); // returns an int[]
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this, R.layout.row_my_roster_card, myCards);

我对 ArrayAdapter 的经验不多。我看到这些是 ArrayAdapter 的 public 构造函数:

我的构造函数有什么问题?

那是因为 int[] 而不是 Integer[]

自动装箱仅适用于单数类型,不适用于数组:int 可以自动装箱为 Integer,但 int[] 不能自动装箱为 Integer[]

您需要将 myCards 转换为 Integer[]。以下方法可以完成这项工作:

public static Integer[] autoboxArray(int[] array) {
    Integer[] newArray = new Integer[array.length];
    for (int i = 0; i < array.length; i++) {
        newArray[i] = array[i];
    }
    return newArray;
}