1.导依赖
2.写布局
3.写适配器
4.点击事件 是要写接口的,在Activity中调用的
第一步:
@NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { //多条目 if (i == TYPE_ONE) { View view = LayoutInflater.from(context).inflate(R.layout.item, viewGroup, false); MyViewHolder holder = new MyViewHolder(view); return holder; } else { View view1 = LayoutInflater.from(context).inflate(R.layout.item1, viewGroup, false); MyViewHolder1 holder1 = new MyViewHolder1(view1); return holder1; } /*View view = LayoutInflater.from(context).inflate(R.layout.item, viewGroup, false); MyViewHolder holder = new MyViewHolder(view); return holder;*/ } //用holder来设置数据的 @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { // holder.name.setText(list.get(i)); //多条目 if (holder instanceof MyViewHolder) { ((MyViewHolder) holder).name.setText(list.get(i).getName()); //简单化的点击事件 /*((MyViewHolder) holder).name.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(context, "你点击了文字", Toast.LENGTH_SHORT).show(); } });*/ } if (holder instanceof MyViewHolder1) { Picasso.with(context).load(list.get(i).getImage()).into(((MyViewHolder1) holder).image); //简单化点击事件 /* ((MyViewHolder1) holder).image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(context, "你点击了图片", Toast.LENGTH_SHORT).show(); } });*/ } } @Override public int getItemCount() { return list == null ? 0 : list.size(); } @Override public int getItemViewType(int position) { if (position % 2 == 0) { return TYPE_ONE; } else { return TYPE_TWO; } } @Override public void onClick(View v) { if (null != listener) { listener.onItemClick(v, (Integer) v.getTag()); } } //第一个布局 class MyViewHolder extends RecyclerView.ViewHolder { public TextView name; //获取控件 public MyViewHolder(View itemView) { super(itemView); name = itemView.findViewById(R.id.name); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listener.onItemClick(v, getAdapterPosition()); } }); } } //第二个布局 class MyViewHolder1 extends RecyclerView.ViewHolder { private final ImageView image; public MyViewHolder1(@NonNull View itemView) { super(itemView); image = itemView.findViewById(R.id.image); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listener.onItemClick(v, getAdapterPosition()); } }); } } private onRecyclerViewItemClickListener listener; public void setOnItemClickListener(onRecyclerViewItemClickListener listener) { this.listener = listener; } //写个接口 public interface onRecyclerViewItemClickListener { void onItemClick(View view, int position); }