Android 无法解析构造函数ArrayAdapter(上下文、int、int[])

Android 无法解析构造函数ArrayAdapter(上下文、int、int[]),android,android-arrayadapter,Android,Android Arrayadapter,这是我的代码: int[] myCards = takeMyCardsFromDB(); // returns an int[] ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this, R.layout.row_my_roster_card, myCards); int[]myCards=takeMyCardsFromDB();//返回一个int[] ArrayAdapter=新的ArrayAdap

这是我的代码:

int[] myCards = takeMyCardsFromDB(); // returns an int[]
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this, R.layout.row_my_roster_card, myCards);
int[]myCards=takeMyCardsFromDB();//返回一个int[]
ArrayAdapter=新的ArrayAdapter(这个,R.layout.row\u我的花名册\u卡,我的卡);
我对ArrayAdapter没有多少经验。我看到这些是ArrayAdapter的公共构造函数:

  • ArrayAdapter(上下文,int资源)
  • ArrayAdapter(上下文上下文、int资源、int文本视图资源ID)
  • ArrayAdapter(上下文、int资源、T[]对象)
  • ArrayAdapter(上下文上下文、int资源、int文本视图资源ID、T[]对象)
  • ArrayAdapter(上下文、int资源、列表对象)
  • ArrayAdapter(上下文上下文、int资源、int文本视图资源ID、列表对象)

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

那是因为
int[]
不是
整数[]

自动装箱仅适用于单数类型,不适用于数组:
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;
}
公共静态整数[]自动二进制数组(int[]数组){
整数[]新数组=新整数[array.length];
for(int i=0;i
谢谢。也许是深夜让我发疯了