------------定义final常量--------------
public int sum=2;
public final int atype=0;
public final int btype=1;
---------Adapter 里多实现两个方法-----------
@Override
public int getItemViewType(int position) {
String area = list.get(position).area;
if(area.equals("条目一")){
return atype;
}else{
return btype;
}
}
@Override
public int getViewTypeCount() {
return sum;
}
-----------自定义Viewholder类优化------------
class ViewHolder1{
ImageView iv;
TextView name;
TextView type;
}
class ViewHolder2{
ImageView iv;
TextView name;
TextView type;
}
-----------重点 getview方法里----------------
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder1 holder1=null;
ViewHolder2 holder2=null;
int type = getItemViewType(i);
if(view==null){
switch (type){
case atype:
view= LayoutInflater.from(context).inflate(R.layout.item1,null);
holder1=new ViewHolder1();
holder1.iv=view.findViewById(R.id.f1_iv);
holder1.name=view.findViewById(R.id.tv_name);
holder1.type=view.findViewById(R.id.tv_type);
view.setTag(holder1);
break;
case btype:
view= LayoutInflater.from(context).inflate(R.layout.item2,null);
holder2=new ViewHolder2();
holder2.iv=view.findViewById(R.id.f1_iv2);
holder2.name=view.findViewById(R.id.tv_name2);
holder2.type=view.findViewById(R.id.tv_type2);
view.setTag(holder2);
break;
}
}else{
switch (type){
case atype:
holder1= (ViewHolder1) view.getTag();
break;
case btype:
holder2= (ViewHolder2) view.getTag();
break;
}
}
switch (type){
case atype:
ImageLoader.getInstance().displayImage(list.get(i).getCoverImg(),holder1.iv);
holder1.name.setText(list.get(i).getName());
holder1.type.setText(list.get(i).getArea());
break;
case btype:
ImageLoader.getInstance().displayImage(list.get(i).getCoverImg(),holder2 .iv);
holder2.name.setText(list.get(i).getName());
holder2.type.setText(list.get(i).getArea());
break;
}
return view;
}