我在适配器中报告了用户的此错误。我不能重现这个:
java.lang.ArrayIndexOutOfBoundsException: length=8; index=8
在这一行
if (columnas.get(column).getENTR() == 3)
但我不明白,因为我之前检查了if (columnas.size() > column)
。我该如何解决这个错误?示例代码如下。
private List<bdcolums> columnas = new ArrayList<bdcolums>();
private View getHeader(final int row, final int column, View convertView, final ViewGroup parent) {
final ViewHolder holder;
if (convertView == null || convertView != inflater.inflate(R.layout.item_table_header, parent, false)) {
convertView = inflater.inflate(R.layout.item_table_header, parent, false);
holder = new ViewHolder();
holder.header_desc = (TextView) convertView.findViewById(R.id.text2);
holder.header_nom = (TextView) convertView.findViewById(android.R.id.text1);
holder.header_img = (ImageView) convertView.findViewById(R.id.dibuheader);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (columnas.size() > column) {
if (columnas.get(column).getENTR() == 3) {
//do something
}
} else {
//do something
}
return convertView;
}
答案 0 :(得分:0)
这是因为您的阵列(列)已被非法地址访问。尝试使用arrayList而不是array。并查看这些问题以获得进一步的帮助。
What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? java.lang.ArrayIndexOutOfBoundsException: length=4; index=4 length array Login Web Service Exception(716): java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
希望它有帮助...:)