多条目适配器

此博客展示了Android开发中多条目适配的相关代码。定义了一个名为HomeAdapter的适配器类,导入了众多Android相关的包,包括布局管理器、视图组件等,还涉及数据类和图片加载库,用于实现多条目适配功能。

package com.bawei.com.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bawei.com.R;
import com.bawei.com.bean.HomeBaseListBean;
import com.bawei.com.bean.HomeJson;
import com.bawei.com.bean.JsonData;
import com.bumptech.glide.Glide;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.stx.xhb.xbanner.XBanner;

import java.util.ArrayList;
import java.util.List;

public class HomeAdapter extends XRecyclerView.Adapter {
Context context;
List list=new ArrayList<>();
public HomeAdapter(Context context) {
this.context = context;
}

public void setList(List<HomeBaseListBean> list) {
    this.list = list;
    notifyDataSetChanged();
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    RecyclerView.ViewHolder viewHolder=null;
    switch (i){
         case 0:
            View view3=View.inflate(context,R.layout.fragment_01bnaner,null);
             viewHolder = new DHolder(view3);
            break;
        case 1:
            View view=View.inflate(context,R.layout.fragment_rxxp,null);
            viewHolder = new AHolder(view);
            break;
        case 2:
            View view1=View.inflate(context,R.layout.fragment_mlss,null);
            viewHolder = new BHolder(view1);
            break;
        case 3:
            View view2=View.inflate(context,R.layout.fragment_pzsh,null);
            viewHolder = new CHolder(view2);
            break;

    }
    return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder viewHolder, final int i) {
     if (viewHolder instanceof DHolder && list.get(i)instanceof JsonData){
         DHolder dHolder= (DHolder) viewHolder;
          JsonData jsonData=(JsonData) list.get(i);
         List<JsonData.ResultBean> result = jsonData.getResult();
          dHolder.xbanner.setBannerData(result);
          dHolder.xbanner.loadImage(new XBanner.XBannerAdapter() {
             @Override
             public void loadBanner(XBanner banner, Object model, View view, int position) {
                  JsonData.ResultBean bean= (JsonData.ResultBean) model;
                 Glide.with(context).load(bean.getImageUrl()).into((ImageView) view);
             }
         });
     }else   if (viewHolder instanceof AHolder && list.get(i) instanceof HomeJson.ResultBean.RxxpBean){
           AHolder aHolder= (AHolder) viewHolder;
           HomeJson.ResultBean.RxxpBean rxxpBean= (HomeJson.ResultBean.RxxpBean) list.get(i);
           aHolder.home_list_01_text.setText(rxxpBean.getName());
           MyAdapter1 myAdapter1 = new MyAdapter1(context, ((HomeJson.ResultBean.RxxpBean) list.get(i)).getCommodityList());
           LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
           linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
           aHolder.rxxp_RecyclerView1.setLayoutManager(linearLayoutManager);
           aHolder.rxxp_RecyclerView1.setAdapter(myAdapter1);
      }else if (viewHolder instanceof BHolder && list.get(i) instanceof HomeJson.ResultBean.MlssBean){
           BHolder bHolder= (BHolder) viewHolder;
           HomeJson.ResultBean.MlssBean mlssBean= (HomeJson.ResultBean.MlssBean) list.get(i);
           bHolder.Text2.setText(mlssBean.getName());
           //适配器
           MyAdapter2 myAdapter2 = new MyAdapter2(context,((HomeJson.ResultBean.MlssBean) list.get(i)).getCommodityList());
           LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
           linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
           bHolder.mlss_RecyclerView2.setLayoutManager(linearLayoutManager);
           bHolder.mlss_RecyclerView2.setAdapter(myAdapter2);
     }else if (viewHolder instanceof CHolder && list.get(i) instanceof HomeJson.ResultBean.PzshBean){
           CHolder cHolder = (CHolder) viewHolder;
           HomeJson.ResultBean.PzshBean pzshBean= (HomeJson.ResultBean.PzshBean) list.get(i);
           cHolder.home_list_03_text.setText(pzshBean.getName());
           GridLayoutManager gridLayoutManager = new GridLayoutManager(context, 2);
           MyAdapter3 myAdapter3 = new MyAdapter3(context, ((HomeJson.ResultBean.PzshBean) list.get(i)).getCommodityList());
           cHolder.recycler_pzsh.setLayoutManager(gridLayoutManager);
           cHolder.recycler_pzsh.setAdapter(myAdapter3);
     }
}

@Override
public int getItemCount() {
    return list.size();
}
@Override
public int getItemViewType(int i) {
    if(list.get(i) instanceof JsonData){
        return 0;
    }else  if (list.get(i) instanceof HomeJson.ResultBean.RxxpBean) {
        return 1;
    } else if (list.get(i) instanceof HomeJson.ResultBean.MlssBean) {
        return 2;
    } else {
        return 3;
    }
}



public class DHolder extends XRecyclerView.ViewHolder{

     XBanner xbanner;

    public DHolder(@NonNull View itemView) {
        super(itemView);
        xbanner = itemView.findViewById(R.id.xbanner);

    }
}
//热销新品
public class AHolder extends XRecyclerView.ViewHolder{

    private final RecyclerView rxxp_RecyclerView1;
    private final TextView home_list_01_text;

    public AHolder(@NonNull View itemView) {
        super(itemView);
        rxxp_RecyclerView1 = itemView.findViewById(R.id.rxxp_RecyclerView1);
        home_list_01_text = itemView.findViewById(R.id.home_list_01_text);

    }
}
//魔丽时尚
public class BHolder extends XRecyclerView.ViewHolder{

    private final RecyclerView mlss_RecyclerView2;
    private final TextView Text2;

    public BHolder(@NonNull View itemView) {
        super(itemView);
        mlss_RecyclerView2 = itemView.findViewById(R.id.mlss_RecyclerView2);
        Text2 = itemView.findViewById(R.id.home_list_02_text);

    }
}
//品质生活
public class CHolder extends XRecyclerView.ViewHolder{

    private final RecyclerView recycler_pzsh;
    private final TextView home_list_03_text;

    public CHolder(@NonNull View itemView) {
        super(itemView);
        recycler_pzsh = itemView.findViewById(R.id.recycler_pzsh);
        home_list_03_text = itemView.findViewById(R.id.home_list_03_text);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王鑫林呀!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值