recycle适配器

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener {

private ArrayList<String> mList;

public MyAdapter(ArrayList<String> mList) {
    this.mList = mList;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = View.inflate(viewGroup.getContext(), R.layout.recy_item, null);
    ViewHolder holder = new ViewHolder(view);
    view.setOnClickListener(this);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
    viewHolder.mName.setText(mList.get(position));
    viewHolder.itemView.setTag(position);
}

@Override
public int getItemCount() {
    return mList.size();
}


public class ViewHolder extends RecyclerView.ViewHolder {
    private TextView mName;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        mName = itemView.findViewById(R.id.recy_name);
    }
}

public interface ItemClick {
    void setOnItemClick(View view, int position);
}

private ItemClick mItemClick;

public void setOnClickListener(ItemClick itemClick) {
    this.mItemClick = itemClick;
}

@Override
public void onClick(View v) {
    if (mItemClick != null) {
        mItemClick.setOnItemClick(v, (int) v.getTag());
    }
}

}
多条目
public class MoreAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener {
private ArrayList mList;
private final int ONE_ITEM = 1;
private final int TWO_ITEM = 2;

public MoreAdapter(ArrayList<BeautyBean> mList) {
    this.mList = mList;
}

//参数2就是布局type类型
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
    View view = null;
    RecyclerView.ViewHolder holder = null;
    switch (viewType) {
        case ONE_ITEM:
            view = View.inflate(viewGroup.getContext(), R.layout.recy_item_one, null);
            holder = new OneHolder(view);
            break;
        case TWO_ITEM:
            view = View.inflate(viewGroup.getContext(), R.layout.recy_item_two, null);
            holder = new TwoHolder(view);
            break;
    }
    view.setOnClickListener(this);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
    BeautyBean bean = mList.get(i);
    //判断前一个参数是否是后一个参数的一个实例
    if (viewHolder instanceof OneHolder) {
        ((OneHolder) viewHolder).mName.setText(bean.getName());
        // ((OneHolder) viewHolder).itemView.setTag(i);
    } else {
        ((TwoHolder) viewHolder).mImage.setImageResource(bean.getImage());
        //  ((TwoHolder) viewHolder).itemView.setTag(i);
    }
    viewHolder.itemView.setTag(i);
}

@Override
public int getItemCount() {
    return mList.size();
}

//显示几种布局
@Override
public int getItemViewType(int position) {
    if (position % 2 == 1) {
        return ONE_ITEM;
    } else {
        return TWO_ITEM;
    }
}


class OneHolder extends RecyclerView.ViewHolder {
    private TextView mName;

    public OneHolder(@NonNull View itemView) {
        super(itemView);
        mName = itemView.findViewById(R.id.One_Text);
    }
}

class TwoHolder extends RecyclerView.ViewHolder {
    private ImageView mImage;

    public TwoHolder(@NonNull View itemView) {
        super(itemView);
        mImage = itemView.findViewById(R.id.Two_Image);
    }
}

public interface ItemClick {
    void setOnItem(View v, int position);
}

private ItemClick itemClick;

public void setOnItemClick(ItemClick itemClick) {
    this.itemClick = itemClick;
}

@Override
public void onClick(View v) {
    if (itemClick != null) {
        itemClick.setOnItem(v, (int) v.getTag());
    }
}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值