今天下午写毕设,用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实例化错误


相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-12
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-03-31
  • 2021-05-19
  • 2022-12-23
  • 2021-07-06
相关资源
相似解决方案