Android Studio中RecyclerView Adapter视图引用未解析问题求助
问题解决:RecyclerView Adapter中textView/imageView未解析引用错误
错误核心原因:onBindViewHolder方法的holder参数声明为父类RecyclerView.ViewHolder类型,而你定义的textView、imageView是自定义内部类ViewHolder的专属属性,父类没有这些成员,导致编译器无法识别。
以下是两种可行的解决方法:
方法一:修改onBindViewHolder的参数类型
直接将方法参数的类型替换为你自定义的ViewHolder,让编译器明确识别holder的具体类型:
override fun onBindViewHolder(holder: CNNRecyclerViewAdapter.ViewHolder, position: Int) { holder.textView.text = videos[position].title holder.imageView.setImageBitmap(videos[position].cover) holder.itemView.setOnClickListener { listener.onItemClick(it, position) } }
由于ViewHolder是Adapter的内部类,在Adapter内部可以简化写成:
override fun onBindViewHolder(holder: ViewHolder, position: Int) { // 同上逻辑代码 }
方法二:在方法内强转holder
如果不想修改参数类型,可在使用前将holder强转为自定义的ViewHolder:
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { val customHolder = holder as CNNRecyclerViewAdapter.ViewHolder customHolder.textView.text = videos[position].title customHolder.imageView.setImageBitmap(videos[position].cover) customHolder.itemView.setOnClickListener { listener.onItemClick(it, position) } }
额外优化建议:可以尝试用ViewBinding替代findViewById,既能避免手动ID匹配错误,也能让代码更简洁安全。
内容的提问来源于stack exchange,提问作者user21437608
相关产品推荐
相关产品推荐

