'com.example.Model.IMG cannot be cast to com.example.Model.VID

I am trying to get images in one recyclerview and videos in another recyclerview. I have two model class and two adapters. I am able to get data from images adapter but when I am trying to get data from video adapter then I am getting com.example.agrawalevents.Model.IMG cannot be cast to com.example.agrawalevents.Model.VID as error.

Here is my VID model class code:-

    import android.net.Uri
    
      

  class VID {
        private var VideoUrl: Uri? = null
        private var ilp: String = ""
    
        constructor()
    
        constructor(
            VideoUrl: Uri,
            ilp: String
        ) {
            this.VideoUrl = VideoUrl
            this.ilp = ilp
        }
    
        fun getVideoUrl(): Uri? {
            return VideoUrl
        }
    
        fun setVideoUrl(VideoUrl: Uri) {
            this.VideoUrl = VideoUrl
        }
        fun getilp(): String {
            return ilp
        }
    }

Here is my IMG model class code:-

class IMG {
    private var ImageUrl: String = ""
    private var ilp: String = ""

    constructor()

    constructor(
        ImageUrl: String,
        ilp: String
    ) {
        this.ImageUrl = ImageUrl
        this.ilp = ilp
    }


    fun getImageUrl(): String {
        return ImageUrl
    }

    fun setImageUrl(ImageUrl: String) {
        this.ImageUrl = ImageUrl
    }

    fun getilp(): String {
        return ilp
    }

    fun setilp(ilp: String) {
        this.ilp = ilp
    }
}

Here is my video adapter code:-

class VideoAdapter (private var mContext: Context,
                    private var mvideos: List<VID>,
                    private var isActivity: Boolean = false) : RecyclerView.Adapter<VideoAdapter.ViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VideoAdapter.ViewHolder {
        val view = LayoutInflater.from(mContext).inflate(R.layout.videos_adapter, parent, false)
        return VideoAdapter.ViewHolder(view)
    }

    override fun onBindViewHolder(holder: VideoAdapter.ViewHolder, position: Int) {
        val videoid = mvideos[position]

        holder.VidId.text = videoid.getilp()

        val mediaController = MediaController(mContext)
        mediaController.setAnchorView(holder.VideoIv)
        holder.VideoIv.setMediaController(mediaController)
        holder.VideoIv.setVideoURI(videoid.getVideoUrl())
        holder.VideoIv.requestFocus()
        holder.VideoIv.pause()

    }

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

    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        var VideoIv: VideoView = itemView.videos_ret
        var VidId: TextView = itemView.videos_id_ret
    }
}

Here is my image adapter code:-

class Imageadapter (private var mContext: Context,
                    private var mimages: List<IMG>,
                    private var isActivity: Boolean = false) : RecyclerView.Adapter<Imageadapter.ViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Imageadapter.ViewHolder {
        val view = LayoutInflater.from(mContext).inflate(R.layout.images_adapter, parent, false)
        return Imageadapter.ViewHolder(view)
    }

    override fun onBindViewHolder(holder: Imageadapter.ViewHolder, position: Int) {
        val imageid = mimages[position]

        Picasso.get().load(imageid.getImageUrl()).into(holder.ImageIv)
        holder.ImgId.text = imageid.getilp()

    }

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

    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

        var ImageIv: ImageView? = itemView.image_ret
        var ImgId: TextView = itemView.imgid_ret

    }
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source