适配器
public class MyAdapter extends BaseAdapter {
private int TYPE_1 = 0;private int TYPE_2 = 1;
private int TYPE_3 = 2;
Context context;
List<String> datas;
public MyAdapter(Context context, List<String> datas) {
this.context = context;
this.datas = datas;
}
@Override
public int getCount() {
//进行判空处理
return datas != null ? datas.size() : 0;
}
@Override
public Object getItem(int position) {
return datas.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
int type = getItemViewType(position);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case 0:
convertView = View.inflate(context, R.layout.item1, null);
holder.tv1 = (TextView) convertView.findViewById(R.id.tv1);
holder.cb = (CheckBox) convertView.findViewById(R.id.cb);
break;
case 1:
convertView = View.inflate(context, R.layout.item2, null);
holder.tv1 = (TextView) convertView.findViewById(R.id.tv1);
break;
case 2:
convertView = View.inflate(context, R.layout.item3, null);
holder.tv1 = (TextView) convertView.findViewById(R.id.tv1);
holder.iv = (ImageView) convertView.findViewById(R.id.iv);
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.tv1.setText(Integer.toString(position));
switch (type) {
case 0:
holder.cb.setChecked(true);
break;
case 1:
break;
case 2:
holder.iv.setImageResource(R.mipmap.vip);
break;
}
return convertView;
}
//获取view类型的个数 长度从0开始
@Override
public int getViewTypeCount() {
return 3;
}
//获取item类型
@Override
public int getItemViewType(int position) {
//每6个一循环
int p = position % 6;
if (p == 0) {
return TYPE_1;
} else if (p <3) {
return TYPE_2;
} else if (p < 6) {
return TYPE_3;
} else {
return TYPE_1;
}
}
private class ViewHolder {
private TextView tv1;
private CheckBox cb;
private ImageView iv;
}
}