RecyclerView自定义基础通用Adapter和ViewHolder

RecyclerView自定义基础通用Adapter和ViewHolder

仅建立一个adapter,配合自定义布局holder,轻松搞定各种RecyclerView布局使用。

1、首先建立BaseViewHolder基础类
public abstract class BaseViewHolder<T> extends RecyclerView.ViewHolder implements View.OnClickListener,View.OnLongClickListener{
   

    public MyAdapterListener myAdapterListener;
    protected Context context;

    public BaseViewHolder(Context context, ViewGroup root, int layoutRes, MyAdapterListener listener) {
        super(LayoutInflater.from(context).inflate(layoutRes, root, false));//super(View view)
        this.context=context;
        this.myAdapterListener =listener;
        itemView.setOnClickListener(this);
        itemView.setOnLongClickListener(this);
    }

    public Context getContext() {
        return itemView.getContext();
    }

    /**绑定数据入口*/
    public abstract void bindData(T t);

    @Override
    public void onClick(View v) {
        if(myAdapterListener !=null){
            myAdapterListener.onItemClick(getAdapterPosition());
        }
    }

    @Override
    public
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android BaseViewHolder 是一个通用ViewHolder 类,它可以用于 RecyclerView 中的多个 Adapter 中。它的作用是将 RecyclerView 中的 itemView 与数据绑定起来,以便于显示数据。通常它包含了一些常用的方法,例如 findViewById() 等,以便于在 itemView 中查找和设置控件。 以下是一个简单的 BaseViewHolder 示例代码: ``` public abstract class BaseViewHolder<T> extends RecyclerView.ViewHolder { public BaseViewHolder(View itemView) { super(itemView); } public abstract void bind(T data); protected <T extends View> T findViewById(@IdRes int id) { return itemView.findViewById(id); } } ``` 在这个示例中,BaseViewHolder 是一个抽象类,它包含了一个 bind() 方法用于绑定数据,一个 findViewById() 方法用于在 itemView 中查找控件。我们可以通过继承 BaseViewHolder 来创建一个自定义ViewHolder 类,例如: ``` public class MyViewHolder extends BaseViewHolder<String> { private TextView textView; public MyViewHolder(View itemView) { super(itemView); textView = findViewById(R.id.text_view); } @Override public void bind(String data) { textView.setText(data); } } ``` 在这个示例中,我们创建了一个 MyViewHolder 类,它继承自 BaseViewHolder<String>,并且实现了 bind() 方法和构造方法。在构造方法中,我们通过 findViewById() 方法来查找 itemView 中的 TextView 控件,并将它保存到 textView 变量中。在 bind() 方法中,我们将数据设置到 textView 中,以便于显示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值