Recycler多条目加载

//现在有三个内部类所以泛型是RecyclerView.ViewHolder
public class GoodsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    Context context;
    List<GoodsInfo.DataBean> data;
//提前定义好getItemViewType返回参数
    int i=0,j=1,l=2;
    private int itemtype;

    public GoodsAdapter(Context context, List<GoodsInfo.DataBean> data2) {
        this.context = context;
        this.data = data2;
    }
    @Override
    public int getItemViewType(int position) {
        GoodsInfo.DataBean dataBean = data.get(position);
        //数据对象里一共有三个itemtype分别是0  1  2
        itemtype = dataBean.getItemtype();
        if(itemtype ==0){
            return i;
        }else if(itemtype ==1){
            return j;
        }else{
            return l;
        }
    }
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //得到getItemViewType返回来的值判断加载子布局
        int viewType1 = getItemViewType(viewType);
        if(viewType1==0){
                View inflate = LayoutInflater.from(context).inflate(R.layout.item1, parent, false);
                GoodsViewHodler goodsViewHodler=new GoodsViewHodler(inflate);
                return goodsViewHodler;
            }else if(viewType1==1){
                View inflate = LayoutInflater.from(context).inflate(R.layout.item2, parent, false);
                GoodsViewHodler2 goodsViewHodler2=new GoodsViewHodler2(inflate);
                return goodsViewHodler2;

            }else if(viewType1==2){
                View inflate = LayoutInflater.from(context).inflate(R.layout.item3, parent, false);
                GoodsViewHodler3 goodsViewHodler3=new GoodsViewHodler3(inflate);
                return goodsViewHodler3;
            }
     //默认返回空
        return null;

    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        //看onCreateViewHolder返回的是哪个布局然后在取数据赋值
     if(holder instanceof GoodsViewHodler){
          GoodsInfo.DataBean dataBean = data.get(position);
          String images = dataBean.getImages();
          String[] split = images.split("\\|");
          Glide.with(context).load(split[0]).into(((GoodsViewHodler) holder).imageView1);
      }else if(holder instanceof GoodsViewHodler2){
          GoodsInfo.DataBean dataBean = data.get(position);
         String subhead = dataBean.getSubhead();
         ((GoodsViewHodler2) holder).imageView2.setText(subhead);
     }else if(holder instanceof GoodsViewHodler3){
          GoodsInfo.DataBean dataBean = data.get(position);
         String title = dataBean.getTitle();
         ((GoodsViewHodler3) holder).textView2.setText(title);
      }
    }
    @Override
    public int getItemCount() {
        return data.size();
    }
    //第一个子ViewHolder
    public class GoodsViewHodler extends RecyclerView.ViewHolder{

        public final ImageView imageView1;

        //第一个子ViewHolder
        public GoodsViewHodler(View itemView) {
            super(itemView);
            imageView1 = (ImageView) itemView.findViewById(R.id.img);

        }
    }
    //第二个子ViewHolder
    public class GoodsViewHodler2 extends RecyclerView.ViewHolder{
        public final TextView imageView2;
        public GoodsViewHodler2(View itemView) {
            super(itemView);
            imageView2 = (TextView) itemView.findViewById(R.id.img2);
        }
    }
    //第三个子ViewHolder
    public class GoodsViewHodler3 extends RecyclerView.ViewHolder{
        public final TextView textView2;
        public GoodsViewHodler3(View itemView) {
            super(itemView);
            textView2 = (TextView) itemView.findViewById(R.id.text2);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值