Я начинаю учиться kotlin
android, и я не знаю, что я делаю неправильно, когда я реализую AsycnTask
.
Я не могу вызвать функцию execute()
Пожалуйста, помогите мне исправить это и показать мне, как реализовать
2 класс в моем адаптере
Мой viewHolder
inner class SongViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val tvTitle: TextView = itemView.findViewById(R.id.tvTitle)
private val tvArtist: TextView = itemView.findViewById(R.id.tvArtist)
private val imgSong: ImageView = itemView.findViewById(R.id.imgSong)
fun binData() {
val song = songList[adapterPosition]
val task = myTask().asyncTask(tvTitle,tvArtist,imgSong,song,mContext)
//Can't call execute()
tvTitle.text = song.title
tvArtist.text = song.artist
val bitmap = Utils.songArt(Uri.parse(song.path), mContext)
if (bitmap != null) {
imgSong.setImageBitmap(bitmap)
} else {
imgSong.setImageResource(R.drawable.default_song)
}
}
Мой asyncTask
class myTask() : AsyncTask<Int, Void, Void>() {
lateinit var tvTitle: TextView
lateinit var tvArtist: TextView
lateinit var imgSong: ImageView
lateinit var song: Song
lateinit var context: Context
fun asyncTask(tvTitle: TextView, tvArtist: TextView, imgSong: ImageView, song: Song,context: Context) {
this.tvTitle = tvTitle
this.tvArtist = tvArtist
this.imgSong = imgSong
this.song = song
this.context = context
}
override fun doInBackground(vararg params: Int?): Void? {
val song = song
tvTitle.text = song.title
tvArtist.text = song.artist
val bitmap = Utils.songArt(Uri.parse(song.path), context)
if (bitmap != null) {
imgSong.setImageBitmap(bitmap)
} else {
imgSong.setImageResource(R.drawable.default_song)
}
return null
}