检查大小后的ArrayIndexOutOfBoundsException

时间:2015-03-04 08:02:21

标签: java android arrays

我在适配器中报告了用户的此错误。我不能重现这个:

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;
}

1 个答案:

答案 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

希望它有帮助...:)