0

I have this error reported from an user in adapter. I can't reproduce this:

java.lang.ArrayIndexOutOfBoundsException: length=8; index=8

at this line

if (columnas.get(column).getENTR() == 3)

but I don't understand, because I checked if (columnas.size() > column) before. How can I fix this error? Sample code is below.

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 Answers1

0

This is because your array(column) has been accessed with illegal address. Try using arrayList instead of array . and see these questions for further assistance.

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

Hope it helps ... :)

Community
  • 1
  • 1
Umair
  • 6,366
  • 15
  • 42
  • 50