RecycleView多条目

//在Activity中

//设置适配器
ShowAdapter showAdapter = new ShowAdapter(Main2Activity.this, list);
 recycle1.setAdapter(showAdapter);

//在适配器中

public class ShowAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private static final int TYPE_ONE=1;
    private static final int TYPE_TWO=2;
    private static final int TYPE_THREE=3;
    private Context context;
    private List<JsonBean.DataBean> list;
    //点击事件的接口回调
    OnItemLongClickListener onItemLongClickListener;
    public interface OnItemLongClickListener{
        public void onItemLongClickListener(View v,int position);
    }
    public void setOnItemLongClickListener(OnItemLongClickListener onItemLongClickListener) {
        this.onItemLongClickListener = onItemLongClickListener;
    }

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

    public void setList(List<JsonBean.DataBean> lists) {
        if (list!=null){
            this.list = lists;
        }
        notifyDataSetChanged();

    }
    public void addList(List<JsonBean.DataBean> lists){
        if (list!=null){
            list.addAll(lists);
        }
        notifyDataSetChanged();
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        if (i==TYPE_ONE){
            View view = LayoutInflater.from(context).inflate(R.layout.recycle1, viewGroup, false);
            return new ViewHolderOne(view);
        }else if (i==TYPE_TWO){
            View view = LayoutInflater.from(context).inflate(R.layout.recycle2, viewGroup, false);
            return new ViewHolderTwo(view);
        }else {
            View view = LayoutInflater.from(context).inflate(R.layout.recycle3, viewGroup, false);
            return new ViewHolderThree(view);
        }
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
        int itemViewType = getItemViewType(i);
        switch (itemViewType){
            case TYPE_ONE:
                ViewHolderOne viewHolderOne= (ViewHolderOne) viewHolder;
                viewHolderOne.text_name.setText(list.get(i).getTitle());
                viewHolderOne.text_time.setText(list.get(i).getDate());
                String imagesString = list.get(i).getThumbnail_pic_s();
                String[] imagesStr = imagesString.split("\\|");
                Glide.with(context).load(imagesStr[0]).into(viewHolderOne.image_icon);
                break;
            case TYPE_TWO:
                ViewHolderTwo viewHolderTwo= (ViewHolderTwo) viewHolder;
                viewHolderTwo.text_name.setText(list.get(i).getTitle());
                viewHolderTwo.text_time.setText(list.get(i).getDate());
                Glide.with(context).load(list.get(i).getThumbnail_pic_s()).into(viewHolderTwo.image_icon1);
                Glide.with(context).load(list.get(i).getThumbnail_pic_s02()).into(viewHolderTwo.image_icon2);
                Glide.with(context).load(list.get(i).getThumbnail_pic_s03()).into(viewHolderTwo.image_icon3);
                break;
            case TYPE_THREE:
                ViewHolderThree viewHolderThree= (ViewHolderThree) viewHolder;
                viewHolderThree.text_name.setText(list.get(i).getTitle());
                viewHolderThree.text_time.setText(list.get(i).getDate());
                break;
        }
        viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onItemLongClickListener.onItemLongClickListener(v,i);
            }
        });

    }

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

    @Override
    public int getItemViewType(int position) {
        if (position%3==1){
            return TYPE_ONE;
        }else if (position%3==2){
            return TYPE_TWO;
        }else {
            return TYPE_THREE;
        }
    }
    //ViewHolder
    class ViewHolderOne extends RecyclerView.ViewHolder {

        private final TextView text_name;
        private final TextView text_time;
        private final ImageView image_icon;

        public ViewHolderOne(@NonNull View itemView) {
            super(itemView);
            text_name = itemView.findViewById(R.id.text_name);
            text_time = itemView.findViewById(R.id.text_time);
            image_icon = itemView.findViewById(R.id.image_icon);
        }
    }
    class ViewHolderTwo extends RecyclerView.ViewHolder {

        private final TextView text_name;
        private final TextView text_time;
        private final ImageView image_icon1;
        private final ImageView image_icon2;
        private final ImageView image_icon3;

        public ViewHolderTwo(@NonNull View itemView) {
            super(itemView);
            text_name = itemView.findViewById(R.id.text_name_recycle2);
            text_time = itemView.findViewById(R.id.text_time_recycle2);
            image_icon1 = itemView.findViewById(R.id.image_icon_recycle2_1);
            image_icon2 = itemView.findViewById(R.id.image_icon_recycle2_2);
            image_icon3 = itemView.findViewById(R.id.image_icon_recycle2_3);
        }
    }
    class ViewHolderThree extends RecyclerView.ViewHolder {

        private final TextView text_name;
        private final TextView text_time;

        public ViewHolderThree(@NonNull View itemView) {
            super(itemView);
            text_name = itemView.findViewById(R.id.text_name_recycle3);
            text_time = itemView.findViewById(R.id.text_time_recycle3);
        }
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值