public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener { // private List<MyBean.DataBean.ObjectsBean.GmallProductBean> list; private List<MyBean.DataBean.ObjectsBean> list; private Context context; private final static int ITEM_ONE = 1; private final static int ITEM_TWO = 2; public MyAdapter(List<MyBean.DataBean.ObjectsBean> list, Context context) { this.list = list; this.context = context; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LayoutInflater inflater = LayoutInflater.from(context); View view; RecyclerView.ViewHolder holder; if (viewType == ITEM_ONE) { view = inflater.inflate(R.layout.one_item, parent, false); holder = new One(view); } else { view = inflater.inflate(R.layout.two_item, parent, false); holder = new Two(view); } view.setOnClickListener(this); return holder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { MyBean.DataBean.ObjectsBean objectsBean = list.get(position); if (holder instanceof One) { ((One) holder).tv1.setText(objectsBean.getGmall_product().getUrl()); Picasso.with(context).load(objectsBean.getGmall_product().getPic_url()).into(((One) holder).iv1); ((One) holder).itemView.setTag(position); } else { ((Two) holder).tv2.setText(objectsBean.getGmall_product().getUrl()); Picasso.with(context).load(objectsBean.getGmall_product().getPic_url()).into(((Two) holder).iv2); ((Two) holder).itemView.setTag(position); } } @Override public int getItemCount() { return list.size(); } @Override public int getItemViewType(int position) { if (position % 2 == 0) { return ITEM_ONE; } else { return ITEM_TWO; } } class One extends RecyclerView.ViewHolder { private final ImageView iv1; private final TextView tv1; public One(View itemView) { super(itemView); iv1 = (ImageView) itemView.findViewById(R.id.iv1); tv1 = (TextView) itemView.findViewById(R.id.tv1); } } class Two extends RecyclerView.ViewHolder { private final ImageView iv2; private final TextView tv2; public Two(View itemView) { super(itemView); iv2 = (ImageView) itemView.findViewById(R.id.iv2); tv2 = (TextView) itemView.findViewById(R.id.tv2); } } public interface OnItemClick { void setOnItem(View v, int position); } private OnItemClick onitem; @Override public void onClick(View view) { if (onitem != null) { onitem.setOnItem(view, (int) view.getTag()); } } public void setOnItemListener(OnItemClick item) { this.onitem = item; } }
recycleview多布局,不带type值,基数偶数。
最新推荐文章于 2021-01-29 21:33:45 发布