主要就是两个类:
package com.shenma.tvlauncher.adapter;
import androidx.viewbinding.ViewBinding;
import com.chad.library.adapter.base.BaseViewHolder;
public class BaseViewBindingHolder<VB extends ViewBinding> extends BaseViewHolder {
public VB viewBind;
public BaseViewBindingHolder(VB viewBind) {
super(viewBind.getRoot());
this.viewBind = viewBind;
}
}
package com.shenma.tvlauncher.adapter;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
public abstract class BaseQuickViewBindingAdapter<T, VH extends BaseViewHolder> extends BaseQuickAdapter<T, VH> {
public BaseQuickViewBindingAdapter() {
super(null);
}
@Override
protected VH onCreateDefViewHolder(ViewGroup parent, int viewType) {
return getViewBinding(
viewType,
LayoutInflater.from(parent.getContext()),
parent
);
}
protected abstract VH getViewBinding(int viewType, LayoutInflater from, ViewGroup parent);
}
使用:
package com.shenma.tvlauncher.adapter;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.shenma.tvlauncher.databinding.MainSortListItemBinding;
import com.shenma.tvlauncher.domain.HomeSort;
public class HomeSortAdapter extends BaseQuickViewBindingAdapter<HomeSort, BaseViewBindingHolder<MainSortListItemBinding>> {
@Override
protected BaseViewBindingHolder<MainSortListItemBinding> getViewBinding(int viewType, LayoutInflater from, ViewGroup parent) {
return new BaseViewBindingHolder<>(MainSortListItemBinding.inflate(from));
}
@Override
protected void convert(BaseViewBindingHolder<MainSortListItemBinding> helper, HomeSort item) {
MainSortListItemBinding binding = helper.viewBind;
binding.titleTextView.setText(item.getTypeName());
}
}