多条目适配

public class NewsAdapter extends BaseAdapter {

private static final int TYPE_ONE_PIC = 0;
private static final int TYPE_TWO_PIC = 1;
private static final int TYPE_THREE_PIC = 2;
private Context context;
private List<News.DataBean> list;

public NewsAdapter(Context context, List<News.DataBean> list) {
    this.context = context;
    this.list = list;
}

@Override
public int getCount() {
    return list.size();
}

@Override
public Object getItem(int i) {
    return list.get(i);
}

@Override
public long getItemId(int i) {
    return i;
}

@Override
public int getViewTypeCount() {
    return 3;
}

@Override
public int getItemViewType(int position) {
    News.DataBean bean = list.get(position);
    if (!TextUtils.isEmpty(bean.getThumbnail03())) {
        return TYPE_THREE_PIC;
    } else if (!TextUtils.isEmpty(bean.getThumbnail02())) {
        return TYPE_TWO_PIC;
    } else {
        return TYPE_ONE_PIC;
    }
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    ViewHolder1 holder1 = null;
    ViewHolder2 holder2 = null;
    ViewHolder3 holder3 = null;

    int type = getItemViewType(i);
    switch (type) {
        case TYPE_ONE_PIC:
            if (view == null) {
                holder1 = new ViewHolder1();
                view = View.inflate(context, R.layout.item_news_01, null);
                holder1.imgLogo1 = view.findViewById(R.id.img_logo1);
                holder1.txtTitle = view.findViewById(R.id.txt_title);
                holder1.txtAuthor = view.findViewById(R.id.txt_author);
                holder1.txtTime = view.findViewById(R.id.txt_time);
                view.setTag(holder1);
            } else {
                holder1 = (ViewHolder1) view.getTag();
            }

            ImageLoader.getInstance().displayImage(list.get(i).getThumbnail01(), holder1.imgLogo1);
            holder1.txtTitle.setText(list.get(i).getTitle());
            holder1.txtAuthor.setText(list.get(i).getAuthorName());
            holder1.txtTime.setText(list.get(i).getDate());

            break;
        case TYPE_TWO_PIC:
            if (view == null) {
                holder2 = new ViewHolder2();
                view = View.inflate(context, R.layout.item_news_02, null);
                holder2.imgLogo1 = view.findViewById(R.id.img_logo1);
                holder2.imgLogo2 = view.findViewById(R.id.img_logo2);
                holder2.txtTitle = view.findViewById(R.id.txt_title);
                holder2.txtAuthor = view.findViewById(R.id.txt_author);
                holder2.txtTime = view.findViewById(R.id.txt_time);
                view.setTag(holder2);
            } else {
                holder2 = (ViewHolder2) view.getTag();
            }

            ImageLoader.getInstance().displayImage(list.get(i).getThumbnail01(), holder2.imgLogo1);
            ImageLoader.getInstance().displayImage(list.get(i).getThumbnail02(), holder2.imgLogo2);
            holder2.txtTitle.setText(list.get(i).getTitle());
            holder2.txtAuthor.setText(list.get(i).getAuthorName());
            holder2.txtTime.setText(list.get(i).getDate());

            break;
        case TYPE_THREE_PIC:
            if (view == null) {
                holder3 = new ViewHolder3();
                view = View.inflate(context, R.layout.item_news_03, null);
                holder3.imgLogo1 = view.findViewById(R.id.img_logo1);
                holder3.imgLogo2 = view.findViewById(R.id.img_logo2);
                holder3.imgLogo3 = view.findViewById(R.id.img_logo3);
                holder3.txtTitle = view.findViewById(R.id.txt_title);
                holder3.txtAuthor = view.findViewById(R.id.txt_author);
                holder3.txtTime = view.findViewById(R.id.txt_time);
                view.setTag(holder3);
            } else {
                holder3 = (ViewHolder3) view.getTag();
            }

            ImageLoader.getInstance().displayImage(list.get(i).getThumbnail01(), holder3.imgLogo1);
            ImageLoader.getInstance().displayImage(list.get(i).getThumbnail02(), holder3.imgLogo2);
            ImageLoader.getInstance().displayImage(list.get(i).getThumbnail03(), holder3.imgLogo3);
            holder3.txtTitle.setText(list.get(i).getTitle());
            holder3.txtAuthor.setText(list.get(i).getAuthorName());
            holder3.txtTime.setText(list.get(i).getDate());

            break;
    }
    return view;
}

class ViewHolder1 {
    ImageView imgLogo1;
    TextView txtTitle;
    TextView txtAuthor;
    TextView txtTime;

}

class ViewHolder2 {

    TextView txtTitle;
    TextView txtAuthor;
    TextView txtTime;
    ImageView imgLogo1;
    ImageView imgLogo2;

}

class ViewHolder3 {

    TextView txtTitle;
    TextView txtAuthor;
    TextView txtTime;
    ImageView imgLogo1;
    ImageView imgLogo2;
    ImageView imgLogo3;

}

猜你喜欢

转载自blog.csdn.net/qq_43169246/article/details/82728254
今日推荐