版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zqd1984309864/article/details/85625285
看过很多帖子说的都比较含糊,在此记录一下:
问题就在于实体类重写的getItemType()方法返回值的个数要等于适配器构造中addItemType的个数,下面贴上我的代码:
public NewsAdapter(List<NewsListBean.ItemBean> data) {
super(data);
addItemType(NewsListBean.ItemBean.TYPE_DOC, R.layout.item_news);
addItemType(NewsListBean.ItemBean.TYPE_PHVIDEO, R.layout.item_video);
addItemType(-1, R.layout.item_test);
}
@Override
public int getItemType() {
if (type.equals("doc")) {
return TYPE_DOC;
} else if (type.equals("phvideo")) {
return TYPE_PHVIDEO;
} else {
return -1;
}
}
我之前在适配器构造中没添加-1这种情况,所以一直报错,加上就ok,记录一下