重写方法:
- getViewTypeCount()、getItemViewType()
例如:
public class MyAdapter extends BaseAdapter {
Context context;
List<Bean.DataBean> list;
public MyAdapter(Context context, List<Bean.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getItemViewType(int position) {
boolean has_image = list.get(position).isHas_image();
if (has_image==true){
//有图片的 0
return 0;
}else{
return 1;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int poition, View view, ViewGroup viewGroup) {
//得到item类型
int itemViewType = getItemViewType(poition);
if (view==null){
//switch判断
switch (itemViewType){
case 0://有三张图片的
view = View.inflate(context, R.layout.lv_item2,null);
ImageView iv1 = view.findViewById(R.id.lv_iv1);
ImageView iv2 = view.findViewById(R.id.lv_iv2);
ImageView iv3 = view.findViewById(R.id.lv_iv3);
TextView lv_tv2 = view.findViewById(R.id.lv_tv2);
lv_tv2.setText(list.get(poition).getTitle());
try {
ImageLoader.getInstance().displayImage(list.get(poition).getImage_list().get(0).getUrl(),iv1);
ImageLoader.getInstance().displayImage(list.get(poition).getImage_list().get(1).getUrl(),iv2);
ImageLoader.getInstance().displayImage(list.get(poition).getImage_list().get(2).getUrl(),iv3);
} catch (Exception e) {
e.printStackTrace();
}
break;
case 1:
//没有图片的
view = View.inflate(context, R.layout.lv_item1,null);
TextView lv_tv1 = view.findViewById(R.id.lv_tv1);
lv_tv1.setText(list.get(poition).getTitle());
break;
}
}
return view;
}
}