首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型参数不在其范围之内:应该是'RecyclerView.ViewHolder!‘的子类型!

类型参数不在其范围之内:应该是'RecyclerView.ViewHolder!‘的子类型!
EN

Stack Overflow用户
提问于 2022-06-11 13:46:47
回答 1查看 49关注 0票数 0

类StudentAdapter: StudentAdapter{私有变量stdList: ArrayList = ArrayList()

代码语言:javascript
复制
fun addItems(items: ArrayList<StudentModel>){
    this.stdList = items
}


override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = StudentViewHolder(
    LayoutInflater.from(parent.context).inflate(R.layout.card_items_std, parent,false)
)

override fun onBindViewHolder(holder: StudentViewHolder, position: Int) {
    val std = stdList[position]
    holder.bindView(std)
}

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

class StudentViewHolder(var view: View): RecyclerView(view){
    private var id = view.findViewById<TextView>(R.id.tvId)
    private var name = view.findViewById<TextView>(R.id.tvName)
    private var email = view.findViewById<TextView>(R.id.tvEmail)
    private var btnDelete = view.findViewById<Button>(R.id.btnDelete)

    fun bindView(std: StudentModel){
        id.text = std.id.toString()
        name.text= std.name.toString()
        email.text = std.email.toString()
    }
}

}

EN

回答 1

Stack Overflow用户

发布于 2022-06-11 13:49:36

视图持有者应该扩展RecyclerView.ViewHolder(view)

代码语言:javascript
复制
class StudentViewHolder(var view: View): RecyclerView.ViewHolder(view){
    private var id = view.findViewById<TextView>(R.id.tvId)
    private var name = view.findViewById<TextView>(R.id.tvName)
    private var email = view.findViewById<TextView>(R.id.tvEmail)
    private var btnDelete = view.findViewById<Button>(R.id.btnDelete)

    fun bindView(std: StudentModel){
        id.text = std.id.toString()
        name.text= std.name.toString()
        email.text = std.email.toString()
    }
}

这里有很好的文档可供参考

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72584881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档