首先是baseAdapter,泛型里面传入数据类型和ViewBinding
public abstract class baseAdapterextends RecyclerView.Adapter { private List data; public baseAdapter(List data) { this.data = data; } @NonNull @Override public baseHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { return new baseHolder(onBindingView(viewGroup)); } @Override public void onBindViewHolder(@NonNull baseHolder holder, int position) { onBindingData(holder,data.get(position),position); } protected abstract void onBindingData(baseHolder holder, T t, int position); protected abstract V onBindingView(ViewGroup viewGroup); @Override public int getItemCount() { return data==null?0:data.size(); } }
baseHolder
public class baseHolderextends RecyclerView.ViewHolder { private V viewBinding; public baseHolder(V viewBinding) { super(viewBinding.getRoot()); this.viewBinding = viewBinding; } public V getViewBinding() { return viewBinding; } }
之后在使用Adapter的时候,将item的ViewBinding填好后,可以直接操控item的控件,赋值,或者加载图片,所有简单的recycleview都可以直接通用,设计非常的银杏,十分好用
baseAdapteradapter = new baseAdapter (aa) { @Override protected void onBindingData(baseHolder holder, String s, int position) { holder.getViewBinding().tvName.setText("123"); } @Override protected ItemDeviceBinding onBindingView(ViewGroup viewGroup) { ItemDeviceBinding viewBinding = ItemDeviceBinding.inflate(LayoutInflater.from(viewGroup.getContext()), viewGroup, false); return viewBinding; } };



