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

时间:2015-01-06 00:28:26

标签: android android-arrayadapter

这是我的代码:

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)

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

1 个答案:

答案 0 :(得分:1)

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