Android Adapte中getItemViewType越界问题

listview中提供了getItemViewTypegetViewTypeCount来实现同一个lsitview多种item布局风格。今天在使用的时候遇到了一个奇怪的问题。这样原来的写法

private static final int ItemType_Holder = 999;private static final int ItemType_Ohter = ItemType_Holder + 1;private static final int ItemTypeCount = 2; @Overridepublic int getItemViewType(int position) {
        LogUtils.e("position:" + position);
        OrderFundJSON item = (OrderFundJSON) list.get(position);if (item.getStatus().equals("1")) {return ItemType_Holder;
        } else if (item.getStatus().equals("2")) {return ItemType_Ohter;
        }return -1;

    }@Overridepublic int getViewTypeCount() {return ItemTypeCount;
    }

按照上面的写法就会报

java.lang.ArrayIndexOutOfBoundsException: length=2

后面我尝试这改变了一下ItemType_Holder的值,发现了问题原因。原来每个item对应的int标识不能超过cout的。也就是说如果你有两个布局文件,count就是2,每个布局文件对应的int值只能从0,1中间选择,不能超过2,不让就会报错。

版权声明:本文为博主原创文章,未经博主允许不得转载。

你可能感兴趣的:(android)