/现在有三个内部类所以泛型是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); } } }
RecyclerView多条目加载
最新推荐文章于 2018-07-01 15:11:00 发布