无法解析构造函数 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 的公共构造函数:

  • ArrayAdapter(Context context, int resource)
  • ArrayAdapter(Context context, int resource, int textViewResourceId)
  • ArrayAdapter(Context context, int resource, T[] objects)
  • ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
  • ArrayAdapter(Context context, int resource, List<T> objects)
  • ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)

我的构造函数出了什么问题?

那是因为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;
}

相关内容

最新更新