public class DemoAdapter extends BaseAdapter {
private Context context;
private List<Demo> list;
//代表加载布局的类型
private static final int TYPE_HAS_PIC = 0;
private static final int TYPE_NO_PIC = 1;
public DemoAdapter(Context context, List<Demo> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
//多条目加载需要重写的方法,布局类型个数
@Override
public int getViewTypeCount() {
return 2;
}
//布局类型
@Override
public int getItemViewType(int position) {
boolean isHas = list.get(position).isHasImg();
/**
* 判断条件
*/
// 根据业务逻辑来,是判断的什么时候加载哪种布局
// String str = list.get(position).getName();
// if (TextUtils.isEmpty(str)) {
// return TYPE_HAS_PIC;
// }else{
// return TYPE_NO_PIC;
// }
if (isHas) {
return TYPE_HAS_PIC;
} else {
return TYPE_NO_PIC;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
case TYPE_HAS_PIC:
convertView = View.inflate(context, R.layout.item_has_pic, null);
holder.imgShow = (ImageView) convertView.findViewById(R.id.img_show);
holder.txtName = (TextView) convertView.findViewById(R.id.txt_name);
break;
case TYPE_NO_PIC:
convertView = View.inflate(context, R.layout.item_no_pic, null);
holder.txtName = (TextView) convertView.findViewById(R.id.txt_name);
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
switch (type) {
case TYPE_HAS_PIC:
holder.imgShow.setImageResource(list.get(position).getResId());
holder.txtName.setText(list.get(position).getName());
break;
case TYPE_NO_PIC:
holder.txtName.setText(list.get(position).getName());
break;
}
return convertView;
}
class ViewHolder {
ImageView imgShow;
TextView txtName;
}
}
private Context context;
private List<Demo> list;
//代表加载布局的类型
private static final int TYPE_HAS_PIC = 0;
private static final int TYPE_NO_PIC = 1;
public DemoAdapter(Context context, List<Demo> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
//多条目加载需要重写的方法,布局类型个数
@Override
public int getViewTypeCount() {
return 2;
}
//布局类型
@Override
public int getItemViewType(int position) {
boolean isHas = list.get(position).isHasImg();
/**
* 判断条件
*/
// 根据业务逻辑来,是判断的什么时候加载哪种布局
// String str = list.get(position).getName();
// if (TextUtils.isEmpty(str)) {
// return TYPE_HAS_PIC;
// }else{
// return TYPE_NO_PIC;
// }
if (isHas) {
return TYPE_HAS_PIC;
} else {
return TYPE_NO_PIC;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
//获取加载的条目类型
if (convertView == null) {
holder = new ViewHolder();
//根据加载布局类型的不同进行区分
case TYPE_HAS_PIC:
convertView = View.inflate(context, R.layout.item_has_pic, null);
holder.imgShow = (ImageView) convertView.findViewById(R.id.img_show);
holder.txtName = (TextView) convertView.findViewById(R.id.txt_name);
break;
case TYPE_NO_PIC:
convertView = View.inflate(context, R.layout.item_no_pic, null);
holder.txtName = (TextView) convertView.findViewById(R.id.txt_name);
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
switch (type) {
case TYPE_HAS_PIC:
holder.imgShow.setImageResource(list.get(position).getResId());
holder.txtName.setText(list.get(position).getName());
break;
case TYPE_NO_PIC:
holder.txtName.setText(list.get(position).getName());
break;
}
return convertView;
}
class ViewHolder {
ImageView imgShow;
TextView txtName;
}
}