xlistview的判断

来源:互联网 发布:java环境搭建教程 编辑:程序博客网 时间:2024/06/05 15:17
public class NewsAdapter extends BaseAdapter {
    Context context;
    List<NewsDataBean.DataBean> list;
    private final int TYPE_VIDEO = 0;
    private final int TYPE_IMAGE_THREEE = 1;
    private final int TYPE_IMAGE_ONE = 2;
    private final int TYPE_NORMAL = 3;

    public NewsAdapter(Context context, List<NewsDataBean.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;
    }

    /**
     * 获取视图类型的数量...也就是有多少种条目类型
     *
     * @return
     */
    @Override
    public int getViewTypeCount() {
        return 4;
    }

    /**
     * 返回当前位置条目视图的类型....返回值是int值
     *
     * @param position ...当前位置
     * @return
     */
    @Override
    public int getItemViewType(int position) {
        //根据数据中的内容进行判断,...当前位置显示的是什么内容
        if (list.get(position).isHas_video()){
            //当前的条目时视频

            return TYPE_VIDEO;
        }else if (list.get(position).isHas_image()){
            if (list.get(position).getImage_list().size()>=3){
                //三张图片的样式
                return TYPE_IMAGE_THREEE;
            }else { r
                return TYPE_IMAGE_ONE;
            }
        }

        //否则就是普通的条目
        return TYPE_NORMAL;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        //在写之前先判断一下当前属于哪种条目的类型
        if (getItemViewType(i) == TYPE_VIDEO){
            VideoHolder holder;
            if (view == null){
                view = View.inflate(context,R.layout.item_video,null);
                holder = new VideoHolder();

                holder.text_title = view.findViewById(R.id.text_title);
                //holder

                view.setTag(holder);
            }else {
                holder = (VideoHolder) view.getTag();
            }

            holder.text_title.setText(list.get(i).getTitle());
            //...图片采用默认

        }else if (getItemViewType(i) == TYPE_IMAGE_THREEE){
            ImageThreeHolder holder;
            if (view == null){
                view = View.inflate(context,R.layout.item_three_image,null);
                holder = new ImageThreeHolder();

                holder.text_title = view.findViewById(R.id.text_title);

                view.setTag(holder);


            }else {
                holder = (ImageThreeHolder) view.getTag();
            }

            holder.text_title.setText(list.get(i).getTitle());

        }else if (getItemViewType(i) == TYPE_IMAGE_ONE){//一张图片的条目
            ImageOneHolder holder;
            if (view == null){
                view = View.inflate(context,R.layout.item_image_one,null);
                holder = new ImageOneHolder();

                holder.text_title = view.findViewById(R.id.text_title);

                view.setTag(holder);


            }else {
                holder = (ImageOneHolder) view.getTag();
            }

            holder.text_title.setText(list.get(i).getTitle());
        }else {
            //显示的是普通的条目
            NormalHolder holder;
            if (view == null){
                view = View.inflate(context,R.layout.item_normal,null);
                holder = new NormalHolder();

                holder.text_title = view.findViewById(R.id.text_title);

                view.setTag(holder);


            }else {
                holder = (NormalHolder) view.getTag();
            }

            holder.text_title.setText(list.get(i).getTitle());
        }

        return view;
    }
原创粉丝点击