News新闻适配(telangpu)

package com.bwie.news;

import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

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 position) {
        return list.get(position);
    }

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

    /**
     * 条目类型的总数量
     * @return
     */
    @Override
    public int getViewTypeCount() {
        return 3;
    }


    /**
     * position对应条目的类型
     * @param position
     * @return
     */
    @Override
    public int getItemViewType(int position) {
        News.DataBean bean = list.get(position);
        // 根据条目中的图片数返回类型
        if (!TextUtils.isEmpty(bean.getThumbnailPicS03())) {
            return TYPE_THREE_PIC;
        } else if (!TextUtils.isEmpty(bean.getThumbnailPicS02())) {
            return TYPE_TWO_PIC;
        } else {
            return TYPE_ONE_PIC;
        }
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder1 holder1 = null;
        ViewHolder2 holder2 = null;
        ViewHolder3 holder3 = null;

        int type = getItemViewType(position);

        switch (type) {
            case TYPE_ONE_PIC:
                if (convertView == null) {
                    holder1 = new ViewHolder1();
                    convertView = View.inflate(context, R.layout.item_news_1, null);
                    holder1.imgLogo = convertView.findViewById(R.id.img_logo);
                    holder1.txtTitle = convertView.findViewById(R.id.txt_title);
                    convertView.setTag(holder1);
                } else {
                    holder1 = (ViewHolder1) convertView.getTag();
                }

                holder1.txtTitle.setText(list.get(position).getTitle());
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnailPicS(),
                        holder1.imgLogo);
                break;
            case TYPE_TWO_PIC:
                if (convertView == null) {
                    holder2 = new ViewHolder2();
                    convertView = View.inflate(context, R.layout.item_news_2, null);
                    holder2.imgLogo1 = convertView.findViewById(R.id.img_logo1);
                    holder2.imgLogo2 = convertView.findViewById(R.id.img_logo2);
                    holder2.txtTitle = convertView.findViewById(R.id.txt_title);
                    convertView.setTag(holder2);
                } else {
                    holder2 = (ViewHolder2) convertView.getTag();
                }
                holder2.txtTitle.setText(list.get(position).getTitle());
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnailPicS(),
                        holder2.imgLogo1);
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnailPicS02(),
                        holder2.imgLogo2);
                break;
            case TYPE_THREE_PIC:
                if (convertView == null) {
                    holder3 = new ViewHolder3();
                    convertView = View.inflate(context, R.layout.item_news_3, null);
                    holder3.imgLogo1 = convertView.findViewById(R.id.img_logo1);
                    holder3.imgLogo2 = convertView.findViewById(R.id.img_logo2);
                    holder3.imgLogo3 = convertView.findViewById(R.id.img_logo3);
                    holder3.txtTitle = convertView.findViewById(R.id.txt_title);
                    convertView.setTag(holder3);
                } else {
                    holder3 = (ViewHolder3) convertView.getTag();
                }
                holder3.txtTitle.setText(list.get(position).getTitle());
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnailPicS(),
                        holder3.imgLogo1);
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnailPicS02(),
                        holder3.imgLogo2);
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnailPicS03(),
                        holder3.imgLogo3);
                break;
        }

        return convertView;
    }

    class ViewHolder1 {
        ImageView imgLogo;
        TextView txtTitle;
    }

    class ViewHolder2 {
        ImageView imgLogo1;
        ImageView imgLogo2;
        TextView txtTitle;
    }

    class ViewHolder3 {
        ImageView imgLogo1;
        ImageView imgLogo2;
        ImageView imgLogo3;
        TextView txtTitle;
    }
}

猜你喜欢

转载自blog.csdn.net/cjavazhao/article/details/82805833