kotiln - класс не является абстрактным и не реализует абстрактный член базового класса (RecyclerView) - PullRequest
0 голосов
/ 04 июня 2019

Я новичок в 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, это вызывает ошибку?

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

Я уже ответил в комментариях. Ради закрытия вопроса я выкладываю его здесь как ответ.

Задача : - onBindViewHolder аргумент не может иметь значение NULL в родительском классе. Поэтому при переопределении он должен быть таким же.

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){
}
}
1 голос
/ 04 июня 2019
class MyOrderRecycleAdapter(val cont: Context, val ordersList: List<MyOrderModel.Datum>) : RecyclerView.Adapter<MyOrderRecycleAdapter.ViewHolder>() {

   override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyOrderRecycleAdapter.ViewHolder {
        val viewHoler = LayoutInflater.from(cont).inflate(R.layout.my_orders_rc_row, parent, false)
        return ViewHolder(viewHoler)
    }

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

    override fun onBindViewHolder(holder: MyOrderRecycleAdapter.ViewHolder, position: Int) {
        Glide.with(cont).load(ordersList!!.get(position)!!.product_image).into(holder.product_icon);
        holder.product_name.text = ordersList!!.get(position)!!.name
    }

    inner class ViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView!!) {
        val product_icon: ImageView = itemView!!.findViewById(R.id.product_icon);
        val product_name: TextView = itemView!!.findViewById(R.id.product_name);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...