package com.example.day02.adapter; import android.content.Context; import android.support.annotation.NonNull; 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 com.example.day02.R; import com.example.day02.bean.NewsBean; import com.facebook.drawee.view.SimpleDraweeView; import com.stx.xhb.xbanner.XBanner; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; /** *@date 创建时间:2018/8/3 0003 *@author *@Description recyclerview的多条目适配器 *@version */ public class MyAdapter02 extends RecyclerView.Adapter { private static final int ITEM_ONE = 1; private static final int ITEM_TWO = 2; private static final int ITEM_THREE = 3; private static final int ITEM_FOUR = 4; private Context context; private List<NewsBean.DataBean> list; private List<String> imageList; private List<String> titleList; private XBanner xBanner; private RecyclerView.ViewHolder viewHolder = null; public MyAdapter02(Context context, List<NewsBean.DataBean> list) { this.context = context; this.list = list; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { if (viewType == ITEM_ONE) { View view = LayoutInflater.from(context).inflate(R.layout.one_layout, parent, false); viewHolder = new OneViewHolder(view); } else if (viewType == ITEM_TWO) { View view = LayoutInflater.from(context).inflate(R.layout.two_layout, parent, false); return viewHolder = new TwoViewHolder(view); } else if (viewType == ITEM_THREE) { View view = LayoutInflater.from(context).inflate(R.layout.three_layout, parent, false); return viewHolder = new ThreeViewHolder(view); } else if (viewType == ITEM_FOUR) { View view = LayoutInflater.from(context).inflate(R.layout.four_layout, parent, false); return viewHolder = new FourViewHolder(view); } return viewHolder; } @Override public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder, final int position) { /*viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { itemClickListener.onItemClickListener(viewHolder,position); } });*/ imageList = new ArrayList<>(); String s = list.get(0).getImages().split("\\|")[0]; String s1 = list.get(0).getImages().split("\\|")[1]; String s2 = list.get(0).getImages().split("\\|")[2]; imageList.add(s); imageList.add(s1); imageList.add(s2); titleList=new ArrayList<>(); titleList.add(list.get(position).getTitle()+"1"); titleList.add(list.get(position).getTitle()+"2"); titleList.add(list.get(position).getTitle()+"3"); if (holder instanceof OneViewHolder) { ((OneViewHolder) holder).oneSimple1.setImageURI(list.get(position).getImages().split("\\|")[0]); ((OneViewHolder) holder).oneSimple2.setImageURI(list.get(position).getImages().split("\\|")[1]); ((OneViewHolder) holder).oneSimple3.setImageURI(list.get(position).getImages().split("\\|")[2]); } else if (holder instanceof TwoViewHolder) { xBanner = ((TwoViewHolder) holder).banner; xBanner.setData(imageList,titleList); xBanner.setmAdapter(new XBanner.XBannerAdapter() { @Override public void loadBanner(XBanner banner, View view, int position) { Glide.with(context).load(imageList.get(position)).into((ImageView) view); } }); } else if (holder instanceof ThreeViewHolder) { ((ThreeViewHolder) holder).threeSimple.setImageURI(list.get(position).getImages().split("\\|")[0]); ((ThreeViewHolder) holder).threeTitle.setText(list.get(position).getTitle()); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { itemClickListener.onItemClickListener(viewHolder,position,((ThreeViewHolder) holder).threeTitle); } }); } else if (holder instanceof FourViewHolder) { ((FourViewHolder) holder).fourSimple.setImageURI(list.get(position).getImages().split("\\|")[0]); ((FourViewHolder) holder).fourSimple02.setImageURI(list.get(position).getImages().split("\\|")[1]); ((FourViewHolder) holder).fourTitle.setText(list.get(position).getTitle()); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { itemClickListener.onItemClickListener(viewHolder,position,((FourViewHolder) holder).fourTitle); } }); } } @Override public int getItemCount() { return list.size(); } @Override public int getItemViewType(int position) { if (position == 0) { return ITEM_ONE; } else if (position == 1) { return ITEM_TWO; } else if ((position + 2)%2 == 0) { return ITEM_THREE; } else if ((position + 2)%2 == 1) { return ITEM_FOUR; } return super.getItemViewType(position); } static class OneViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.one_simple1) SimpleDraweeView oneSimple1; @BindView(R.id.one_simple2) SimpleDraweeView oneSimple2; @BindView(R.id.one_simple3) SimpleDraweeView oneSimple3; OneViewHolder(View view) { super(view); ButterKnife.bind(this, view); } } static class TwoViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.banner) XBanner banner; TwoViewHolder(View view) { super(view); ButterKnife.bind(this, view); } } static class ThreeViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.three_simple) SimpleDraweeView threeSimple; @BindView(R.id.three_title) TextView threeTitle; ThreeViewHolder(View view) { super(view); ButterKnife.bind(this, view); } } static class FourViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.four_simple) SimpleDraweeView fourSimple; @BindView(R.id.four_title) TextView fourTitle; @BindView(R.id.four_simple02) SimpleDraweeView fourSimple02; FourViewHolder(View view) { super(view); ButterKnife.bind(this, view); } } private OnItemClickListener itemClickListener; public void setItemClickListener(OnItemClickListener itemClickListener) { this.itemClickListener = itemClickListener; } public interface OnItemClickListener{ void onItemClickListener(RecyclerView.ViewHolder view, int postion, TextView textView); } }
RecyclerView 多条目加载和字条目点击事件
最新推荐文章于 2018-11-25 19:19:09 发布