多条目适配器
public class RecycleViewAdapter extends RecyclerView.Adapter {
private Context mContext;
private ArrayList<RecycleUser.DataBean> list;
//3.全局变量
private RecycleitemClick click;
public RecycleViewAdapter(Context context, ArrayList<RecycleUser.DataBean> list) {
mContext = context;
this.list = list;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int position) {
View view;
RecyclerView.ViewHolder holder = null;
switch (position){
case 1:
view = LayoutInflater.from(mContext).inflate(R.layout.item, viewGroup, false);
//4.传入点击事件
holder = new MyViewHolder(view,click);
break;
case 2:
view = LayoutInflater.from(mContext).inflate(R.layout.item1, viewGroup, false);
holder = new MyViewHolder2(view,click);
break;
}
return holder;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) {
RecycleUser.DataBean bean = list.get(position);
switch (getItemViewType(position)){
case 1:
Picasso.with(mContext).load(bean.getThumbnail_pic_s()).into(((MyViewHolder) viewHolder).image);
((MyViewHolder) viewHolder).text.setText(bean.getAuthor_name());
break;
case 2:
Picasso.with(mContext).load(bean.getThumbnail_pic_s03()).into(((MyViewHolder2) viewHolder).image1);
Picasso.with(mContext).load(bean.getThumbnail_pic_s02()).into(((MyViewHolder2) viewHolder).image2);
((MyViewHolder2) viewHolder).text1.setText(bean.getAuthor_name());
break;
}
}
@Override
public int getItemViewType(int position) {
if(position%2!=0){
return 1;
}else{
return 2;
}
}
//删除
public void removeData(int position){
list.remove(position);
notifyItemRemoved(position);
notifyDataSetChanged();
}
//添加
public void addData(int position){
list.add(position,list.get(position));
notifyItemInserted(position+1);
}
//修改
public void updateData(int position){
//list.add(position,list.get(position));
//notifyItemRangeChanged(position,1);
//list.set(position,list.get(position));
//notifyItemChanged(position);
list.clear();
notifyDataSetChanged();
}
//清空
public void onClear(){
list.clear();
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return list==null?0:list.size();
}
//1.定义接口
public interface RecycleitemClick{
public void onItemClick(View view,int position);
}
//2.实例化接口
public void setRecycleOnClick(RecycleitemClick onclick){
this.click = onclick;
}
class MyViewHolder extends RecyclerView.ViewHolder {
TextView text;
ImageView image;
public MyViewHolder(@NonNull View itemView, final RecycleitemClick click) {
super(itemView);
text = itemView.findViewById(R.id.text1);
image = itemView.findViewById(R.id.image1);
//5.拿到点击事件
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
click.onItemClick(v,getAdapterPosition());
}
});
}
}
class MyViewHolder2 extends RecyclerView.ViewHolder{
TextView text1;
ImageView image1;
ImageView image2;
public MyViewHolder2(@NonNull View itemView, final RecycleitemClick click) {
super(itemView);
text1 = itemView.findViewById(R.id.text2);
image1 = itemView.findViewById(R.id.image2);
image2 = itemView.findViewById(R.id.image3);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
click.onItemClick(v,getAdapterPosition());
}
});
}
}
}