我试图在Kotlin创建一个RecyclerView,但问题似乎很简单
因此,我试图创建一个RecyclerView,但我在下面的“ClassRecyclerAdapter”和“override on BindViewHolder”参考照片中出错 首先,它声明“类'RecyclerAdapter'不是抽象的,并且没有在BindViewHolder(holder:RecyclerView.ViewHolder,position:Int)上实现抽象基类成员公共抽象乐趣:在androidx.RecyclerView.widget.RecyclerView.Adapter中定义的单元” 第二个错误表示“onBindViewHolder”不覆盖任何内容 我正在学习本教程,这里是我遇到问题的教程片段 我几乎一字不差地复制了教程,但我不知道为什么我仍然会遇到这些错误,相信我,我曾尝试在这里和其他地方进行研究,包括android文档,以获得解决方案,但没有任何效果。下面是我试图解决的问题:当我添加RecyclerView.Viewholder时,两个错误都消失了,但随后变量变得无法解决我试图在Kotlin创建一个RecyclerView,但问题似乎很简单,kotlin,android-recyclerview,Kotlin,Android Recyclerview,因此,我试图创建一个RecyclerView,但我在下面的“ClassRecyclerAdapter”和“override on BindViewHolder”参考照片中出错 首先,它声明“类'RecyclerAdapter'不是抽象的,并且没有在BindViewHolder(holder:RecyclerView.ViewHolder,position:Int)上实现抽象基类成员公共抽象乐趣:在androidx.RecyclerView.widget.RecyclerView.Adapter
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
holder.itemTitle.text=titles[position]
holder.itemDetail.text=details[position]
holder.itemPicture.setImageResource(images[position])
}
如果你能找到解决这个问题的办法,我将不胜感激
多谢各位
class RecyclerAdapter (private var titles:List<String>,private var details: List<String>,private var
images:List<Int>):
RecyclerView.Adapter<RecyclerView.ViewHolder>(){
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val itemTitle: TextView = itemView.findViewById(R.id.title)
val itemDetail:TextView=itemView.findViewById(R.id.description)
val itemPicture: ImageView =itemView.findViewById(R.id.iv_image)
init {
// Define click listener for the ViewHolder's View.
itemView.setOnClickListener{v:View->
val position:Int =adapterPosition
Toast.makeText(itemView.context," You clicked on item #
${position+1}",Toast.LENGTH_SHORT)
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val v =LayoutInflater.from(parent.context).inflate(R.layout.item_layout,parent,false)
return ViewHolder(v)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.itemTitle.text=titles[position]
holder.itemDetail.text=details[position]
holder.itemPicture.setImageResource(images[position])
}
override fun getItemCount(): Int {
return titles.size
}
class RecyclerAdapter(私有变量标题:列表,私有变量详细信息:列表,私有变量
图片:列表):
RecyclerView.Adapter(){
内部类ViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){
val itemTitle:TextView=itemView.findViewById(R.id.title)
val itemDetail:TextView=itemView.findViewById(R.id.description)
val itemPicture:ImageView=itemView.findViewById(R.id.iv_图像)
初始化{
//定义ViewHolder视图的单击侦听器。
itemView.setOnClickListener{v:View->
val位置:Int=适配器位置
Toast.makeText(itemView.context),您单击了项目#
${position+1}”,Toast.LENGTH_SHORT)
}
}
}
override onCreateViewHolder(父级:ViewGroup,viewType:Int):ViewHolder{
val v=LayoutFlater.from(parent.context)。充气(R.layout.item_布局,parent,false)
返回视窗支架(v)
}
覆盖BindViewHolder(holder:ViewHolder,位置:Int){
holder.itemTitle.text=标题[位置]
holder.itemDetail.text=详细信息[位置]
holder.itemPicture.setImageResource(图像[位置])
}
重写getItemCount():Int{
返回标题。大小
}
}
RecyclerAdapter.ViewHolder
,而不是RecyclerView.ViewHolder
class RecyclerAdapter (private var titles:List<String>,private var details: List<String>,private var
images:List<Int>):
RecyclerView.Adapter<RecyclerAdapter.ViewHolder>()
class RecyclerAdapter(私有变量标题:列表,私有变量详细信息:列表,私有变量
图片:列表):
RecyclerView.Adapter()
好的,我不知道为什么我没有注意到,可能是因为时间真的很晚了,哈哈