recyclerView已经用了很久了,大部分时间都是使用的三方的adapter,但是最基本的我们也需要知道,毕竟万一哪天轮子没了呢?
这段代码就是经典的设置适配器
![](https://img.haomeiwen.com/i2657154/c4ebb12d5d3cf3b3.png)
这段代码告诉我们想要继承RecyclerView.Adapter的泛型必须是VH extends RecyclerView.ViewHolder,那么我们就去实现一个最基本的viewHolder
![](https://img.haomeiwen.com/i2657154/c02972806ba8d10b.png)
![](https://img.haomeiwen.com/i2657154/6b1be24b9474c6ae.png)
![](https://img.haomeiwen.com/i2657154/cecd0325d6d86f1d.png)
我们实现了自己的viewHolder,现在爆红是需要覆盖其中的方法
![](https://img.haomeiwen.com/i2657154/09d615c027167f46.png)
接下来我们要构建适配器的构造函数
一般来说我们会传入context和资源集合,传入contenx方便我们加载布局view
![](https://img.haomeiwen.com/i2657154/cfca81564264e1fd.png)
注意修改集合的长度为列表的长度,不然就空白不显示了
![](https://img.haomeiwen.com/i2657154/3903676ce7237f02.png)
创建item布局,我这里比较简单为了演示而已,实际看个人需求。
![](https://img.haomeiwen.com/i2657154/63480d56bea1d65b.png)
我们实现viewHolder的创建
![](https://img.haomeiwen.com/i2657154/55aae1c982e91545.png)
然后在绑定那里实现资源的设置
![](https://img.haomeiwen.com/i2657154/346af263d267be4a.png)
我们先来实验一下adapter能不能用了
![](https://img.haomeiwen.com/i2657154/9b392098ed4bed4b.png)
验证完毕好像没啥问题,那我们继续下一步,增加条目的长按和点击事件
![](https://img.haomeiwen.com/i2657154/fb1fd55b4ddb3fc7.png)
我们定义一个接口,模仿长按和点击条目,里面参数View和pos是为了方便我们回调view和点击的位置
![](https://img.haomeiwen.com/i2657154/f1a2972a9925f7a2.png)
在我们的adapter里面创建一个这个接口的引用,并生成set方法
![](https://img.haomeiwen.com/i2657154/ed7aa666e9876a9e.png)
可能有看官好奇,说为啥子这样,耐心继续下看
接下来我们要在onBindViewHolder这里做手脚了
![](https://img.haomeiwen.com/i2657154/287ff3d442382f7a.png)
我们先去实验下能不能实现效果
![](https://img.haomeiwen.com/i2657154/ec134dea95b1831b.png)
![](https://img.haomeiwen.com/i2657154/72d4914ab26e3817.png)
事实证明是可以的
当我们设置完适配器的时候,那么适配器里的itemClickListenner就不是null,当条目点击的时候,就相当于回掉了我们new出来的监听器的点击事件和长按事件,我们就能打印出相关的所需,这样下来一个最基本的监听事件就做完了
![](https://img.haomeiwen.com/i2657154/77e2da880d65e377.png)
网友评论