Класс данных в Котлине

Мне нужно отобразить изображение с помощью класса данных

Я запутался в классе данных, я имею дело с изображением как с изображением или с классом данных Int Пользователь (val pic: Image)

или класс данных User(val pic: Int)

и отобразить его бросить CustomAdapter

  class CustomAdapter(val userList: ArrayList<User>) :      RecyclerView.Adapter<CustomAdapter.ViewHolder>() {   
  class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):    CustomAdapter.ViewHolder {
    val v =  LayoutInflater.from(parent.context).inflate(R.layout.list_layout, parent, false)
    return ViewHolder(v)

     fun bindItems(user: User) {

  val imageView = itemView.findViewById(R.id.image_item) as ImageView

        imageView.setImageResource(pic: )


    }

}

Я знаю, что мой код не завершен, поэтому мне нужен только пример для демонстрации изображений в классе данных

1 ответ

Решение

Класс данных должен иметь данные общего типа, но в вашем коде вы пытаетесь сохранить ImageView. Ниже приведен пример класса данных:

 data class User(val name: String, val pic: Int)

А также добавив код адаптера ниже:

class HelpAdapter : RecyclerView.Adapter<HelpAdapter.ViewHolder>() {

override fun getItemCount() = 10

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {

val view =LayoutInflater.from(parent.context).inflate(R.layout.row_navigation_menu,parent,false)
    return ViewHolder(view)
}

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    //here add data to the views
    //If your have list of user data, then you can each user like 
    val user = usersData[position]
    holder.nameTV.text = user.name
    holder.imageView.setImageResource(user.pic)
}

 inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
    val nameTV = view.tv_name
    val imageView = view.iv_pic
 }
}
Другие вопросы по тегам