Android开发经常使用recyclerview,但是每次使用的时候,总是要创建一个Adapter继承RecyclerView.Adapter,那么能不能把这个Adapter封装起来?这样的话,就不用每次都写一遍Adapter了,答案是可以的。
第一步:我们先看一下原生的Adapter继承RecyclerView.Adapter的代码
第二步:分析哪些方法需要抽象
Adapter里面重写了3个方法,然后创建了一个内部类ViewHolder。我们需要抽象onCreateViewHolder和onBindViewHolder和内部类ViewHolder
第三部:抽象方法的思路
onCreateViewHolder可以使用传过来的参数,onBindViewHolder可以使用一个接口,把数据传出去,剩下的内部类ViewHolder里面用到了findViewById进行了固定绑定,我们的封装不能固定绑定,因为每个Adapter里面需要绑定的id不一样,这时我们可以使用到SparseArray<View>,我们将View保存在SparseArray<View>里面,需要的时候再绑定id就好了。
第四步:我们看一下封装的代码