今天下午写毕设,用Androidstudio写一个类似于知乎日报的界面,item的显示使用的是recycleview,写好后网络请求的数据列表显示正确,最后想给每个item注册点击事件以显示详细内容,结果每次点击获得的item内容总不是点击的内容,所以在oncreateViewHolder()中用getAdapterPosition获得点击位置,日志和代码如下:
从打印的日志可以看出,点击的内容和显示的内容不一致,多次点击打印之后发现,点击不同的位置,显示的内容还是不变,所以推测oncreateViewholder和onbindviewholder两个函数出现错误,看了代码之后发现前者viewholer的实例化写错了,错误代码:
每个viewholder应该是不同的实例,如果把viewhoder作为全局变量,会造成前面的错误,所以应该在每次oncreate时都实例化一个对象,
修改后的结果: