首页 > 解决方案 > kotiln- 类不是抽象的,不实现抽象基类成员(RecyclerView)

问题描述

我是 Kotlin 的新手,我从教程中尝试了 RecycleView 实现,但得到了这个

class MainAdapter: RecyclerView.Adapter<CustomViewHolder>() {

    val videoTitles = listOf("First Title","Second","Third")

    override fun getItemCount(): Int {
        return videoTitles.size
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
        val layoutInflater = LayoutInflater.from(parent.context)
        val cellForRow = layoutInflater.inflate(R.layout.video_row,parent,false)
        return CustomViewHolder(cellForRow)
    }

    override fun onBindViewHolder(holder: CustomViewHolder?, position: Int) {
        val videoTitle = videoTitles.get(position)
        holder.view.textView_video_title.text = videoTitle
    }

}

class CustomViewHolder(val view: View): RecyclerView.ViewHolder(view){


}

我正在使用 Android Studio 3.4,是否会导致错误?

标签: androidkotlinandroid-recyclerview

解决方案


我已经在评论中回答了。为了结束这个问题,我将它作为答案发布在这里。

问题:-onBindViewHolder父类中的参数不可为空所以当你覆盖它时它应该是相同的。

class MainAdapter: RecyclerView.Adapter<MainAdapter.CustomViewHolder>() {
val videoTitles = listOf("First Title","Second","Third")
override fun getItemCount(): Int {
    return videoTitles.size
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
    val layoutInflater = LayoutInflater.from(parent.context)
    val cellForRow = layoutInflater.inflate(R.layout.activity_dx,parent,false)
    return CustomViewHolder(cellForRow)
}
override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {

}
inner class CustomViewHolder(val view: View): RecyclerView.ViewHolder(view){
}
}

推荐阅读