Класс данных в Котлине
Мне нужно отобразить изображение с помощью класса данных
Я запутался в классе данных, я имею дело с изображением как с изображением или с классом данных 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
}
}