在使用ListView的时候,我们都知道item会复用,当有多种类型的item时,需要利用getItemViewType()方法来区别item的种类,以便对应不同的item布局。
public class PostAdapter extends MyBaseAdapter<PostInfo, PostAdapter.ViewHolder> implements View.OnClickListener{
private int TYPE_POST = 1; // 正文
private int TYPE_COMMENT = 2; // 评论
@Override
public int getItemViewType(int position) {
if (position == 0)
return TYPE_POST;
else
return TYPE_COMMENT;
}
..............
}
但是,如上我们adapter重写完成后,运行程序发现item样式是乱的,原因就是item复用惹的祸,复用的时候没有去区分开type,可是明明我已经定义了getItemViewType()方法了啊。
光定义getItemViewType()方法是不够的,还需要我们重写一个方法:
@Override
public int getViewTypeCount() {
return 2;
}
返回type的种类数量。运行的时候居然直接报错了:
0