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