Search code examples
androidkotlindata-class

Data Class in Kotlin


I need to display image by use Data class

I confused in data class I deal with image as image or Int data class User(val pic : Image)

or data class User(val pic : Int)

and display it throw 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: )


    }

}

I know my code not complete so I need just example to demonstrate images in Data Class


Solution

  • Data Class should have generic type data, but in your code you are trying to save ImageView. Below is the sample data class:

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

    And also adding adapter code below:

    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
     }
    }