Android之RecycleView的使用--ViewHolder实例化错误

         今天下午写毕设,用Androidstudio写一个类似于知乎日报的界面,item的显示使用的是recycleview,写好后网络请求的数据列表显示正确,最后想给每个item注册点击事件以显示详细内容,结果每次点击获得的item内容总不是点击的内容,所以在oncreateViewHolder()中用getAdapterPosition获得点击位置,日志和代码如下:

Android之RecycleView的使用--ViewHolder实例化错误

Android之RecycleView的使用--ViewHolder实例化错误

从打印的日志可以看出,点击的内容和显示的内容不一致,多次点击打印之后发现,点击不同的位置,显示的内容还是不变,所以推测oncreateViewholder和onbindviewholder两个函数出现错误,看了代码之后发现前者viewholer的实例化写错了,错误代码:

Android之RecycleView的使用--ViewHolder实例化错误

Android之RecycleView的使用--ViewHolder实例化错误

每个viewholder应该是不同的实例,如果把viewhoder作为全局变量,会造成前面的错误,所以应该在每次oncreate时都实例化一个对象,

Android之RecycleView的使用--ViewHolder实例化错误

修改后的结果:

Android之RecycleView的使用--ViewHolder实例化错误