封装通用Adapter

封装目的:

通过封装一些通用的逻辑,减少代码量,书写起来更方便,增加可读性。

封装步骤

(1) 封装ViewHolder: RecyclerView要求必须使用ViewHolder, 一般在使用的过程中ViewHolder一般作为Adapter的泛型传入,所以要封装通用的Adapter首先需要一个通用的ViewHolder, ViewHolder的作用是存储View的实例,避免每次都findViewById(),因为我们是要打造通用的ViewHolder,所以我们不能像平常一样,把ViewHolder里面的控件写死,因此,我们采用了一个集合(SparseArray)来存储ViewHolder里面的View实例,并且对外提供一个GetView的方法,这个方法的作用是根据View的id来来获取View的实例,如果这个View以前获取过,那么直接从集合里面取这个View,否则根据id从itemView里面去查找。然后根据传入layoutId就可以把ViewHolder给构建出来。
(2)封装Adapter: 因为onCreateViewHolder的功能是根据传入layoutId,就可以新建出我们前面创建的通用ViewHolder,所以这部分代码是固定的,onBindViewHolder里面的的绑定数据和事件的逻辑抽象出来了,提供了一个convert的抽象方法来给子类来实现,通过这个方法用户可以拿到当前Item所需要的bean和viewHolder去操作。
(3)进一步封装ViewHolder: 我们的Item实际上使用的控件较多时候可能都是TextView,ImageView等,我们一般在convert方法都是去设置文本,图片。封装了一些设置文本,图片的方法。

你可能感兴趣的:(封装通用Adapter)