Recyclerview的多种条目

package comp.example.practise9.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;

import java.util.List;

import comp.example.practise9.Lei.ShiTi;
import comp.example.practise9.R;

/**
 * Created by 潘明杰 on 2017/11/13.
 */
public class RecyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private Context context;
    private List<ShiTi.ResultBean.DataBean> data;

    public RecyAdapter(Context context, List<ShiTi.ResultBean.DataBean> data) {
        this.context = context;
        this.data = data;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        RecyclerView.ViewHolder holder = null;
        if (viewType == 0) {
            View inflate = LayoutInflater.from(context).inflate(R.layout.one_item, null, false);
            holder = new ViewHolder1(inflate);
        }
        if (viewType == 1) {
            View inflate1 = LayoutInflater.from(context).inflate(R.layout.two_item, null, false);
            holder = new ViewHolder2(inflate1);
        }
        return holder;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        if (holder instanceof ViewHolder1) {
            ((ViewHolder1) holder).tv1.setText(data.get(position).getAuthor_name());
            ((ViewHolder1) holder).tv2.setText(data.get(position).getTitle());
            ((ViewHolder1) holder).tv3.setText(data.get(position).getCategory());
            Glide.with(context).load(data.get(position).getThumbnail_pic_s()).into(((ViewHolder1) holder).image_1);
            Glide.with(context).load(data.get(position).getThumbnail_pic_s03()).into(((ViewHolder1) holder).image_2);
            Glide.with(context).load(data.get(position).getThumbnail_pic_s02()).into(((ViewHolder1) holder).image_3);

        }
        if (holder instanceof ViewHolder2) {
            ((ViewHolder2) holder).tv_content.setText(data.get(position).getAuthor_name());
            ((ViewHolder2) holder).tv_text.setText(data.get(position).getTitle());
            ((ViewHolder2) holder).tv_title.setText(data.get(position).getDate());
            Glide.with(context).load(data.get(position).getThumbnail_pic_s()).into(((ViewHolder2) holder).imagee);

        }

    }

    @Override
    public int getItemCount() {
        return data.size();
    }

    @Override
    public int getItemViewType(int position) {
        String thumbnail_pic_s02 = data.get(position).getThumbnail_pic_s02();
        if (thumbnail_pic_s02 != null) {
            return 0;

        } else {
            return 1;
        }

    }

    public  class ViewHolder1 extends RecyclerView.ViewHolder {
        public View rootView;
        public TextView tv1;
        public TextView tv2;
        public TextView tv3;
        public ImageView image_1;
        public ImageView image_2;
        public ImageView image_3;

        public ViewHolder1(View rootView) {
            super(rootView);
            this.rootView = rootView;
            this.tv1 = (TextView) rootView.findViewById(R.id.tv1);
            this.tv2 = (TextView) rootView.findViewById(R.id.tv2);
            this.tv3 = (TextView) rootView.findViewById(R.id.tv3);
            this.image_1 = (ImageView) rootView.findViewById(R.id.image_1);
            this.image_2 = (ImageView) rootView.findViewById(R.id.image_2);
            this.image_3 = (ImageView) rootView.findViewById(R.id.image_3);
            rootView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    itemClickListener.setOnItemClickListener(view,getLayoutPosition());
                }
            });
            rootView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    OnLongItemClickListener.OnLongItemClickListener(view,getLayoutPosition());
                    return true;
                }
            });
        }

    }

    public  class ViewHolder2 extends RecyclerView.ViewHolder {
        private  ImageView imagee;
        public View rootView;
        public TextView tv_text;
        public TextView tv_content;
        public TextView tv_title;

        public ViewHolder2(View rootView) {
            super(rootView);
            this.rootView = rootView;
            this.tv_text = (TextView) rootView.findViewById(R.id.tv_text);
            this.tv_content = (TextView) rootView.findViewById(R.id.tv_content);
            this.tv_title = (TextView) rootView.findViewById(R.id.tv_title);
            this.imagee = (ImageView) rootView.findViewById(R.id.imagee);
           rootView.setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View view) {
                   itemClickListener.setOnItemClickListener(view,getLayoutPosition());
               }
           });
            rootView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    OnLongItemClickListener.OnLongItemClickListener(view,getLayoutPosition());
                    return true;
                }
            });
        }

    }
    //1.第一步
    public interface OnItemClickListener {
        void setOnItemClickListener(View v, int position);
    }

    public OnItemClickListener itemClickListener;



    public void onClick(View v) {
        if (itemClickListener != null) {
            itemClickListener.setOnItemClickListener(v, (int) v.getTag());
        }
    }

    public void setOnItemClickListener(OnItemClickListener listener) {
        this.itemClickListener = listener;
    }
    //_______________________________________________________
    public interface OnLongItemClickListener {
        void OnLongItemClickListener(View v, int position);
    }

    public OnLongItemClickListener OnLongItemClickListener;



    public void onLongClick(View v) {
        if (OnLongItemClickListener != null) {
            OnLongItemClickListener.OnLongItemClickListener(v, (int) v.getTag());
        }
    }

    public void OnLongItemClickListener(OnLongItemClickListener listener) {
        this.OnLongItemClickListener = listener;
    }
}

猜你喜欢

转载自my.oschina.net/u/3737161/blog/1817178
今日推荐