多条目适配器

多条目适配器

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());
            }
        });
    }
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值