fix CustomAdapter repeating issue

This commit is contained in:
Jannik 2020-10-09 13:25:12 +02:00
parent ac8d3ab292
commit b94b86b866
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
3 changed files with 9 additions and 43 deletions

View File

@ -1,28 +0,0 @@
package org.mosad.teapod.ui.components
import android.content.Context
import android.graphics.Bitmap
import android.widget.LinearLayout
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.linear_media.view.*
import org.mosad.teapod.R
class MediaLinearLayout(context: Context?) : LinearLayout(context) {
init {
inflate(context, R.layout.linear_media, this)
}
fun setTitle(title: String): MediaLinearLayout = apply {
text_title.text = title
}
fun setPoster(url: String): MediaLinearLayout = apply {
Glide.with(context)
.load(url)
.into(image_poster)
}
}

View File

@ -29,15 +29,13 @@ class LibraryFragment : Fragment() {
val parser = AoDParser()
mediaList = parser.listAnime()
println("setting adapter")
// create and set the adapter, needs context
withContext(Dispatchers.Main) {
adapter = CustomAdapter(requireContext(), mediaList)//ArrayAdapter(requireContext(), R.layout.linear_media, R.id.text_title, mediaList)
list_library.adapter = adapter
adapter.notifyDataSetChanged()
//adapter.notifyDataSetChanged()
}
}
}

View File

@ -7,26 +7,22 @@ import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import org.mosad.teapod.R
import org.mosad.teapod.ui.components.MediaLinearLayout
class CustomAdapter(context: Context, private val media: ArrayList<GUIMedia>) : ArrayAdapter<GUIMedia>(context, R.layout.linear_media, media) {
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
return if (convertView == null) {
val guiMedia = LayoutInflater.from(context).inflate(R.layout.linear_media, parent, false)
val view = convertView ?: LayoutInflater.from(context).inflate(R.layout.linear_media, parent, false)
val textTitle = guiMedia.findViewById<TextView>(R.id.text_title)
val imagePoster = guiMedia.findViewById<ImageView>(R.id.image_poster)
val textTitle = view.findViewById<TextView>(R.id.text_title)
val imagePoster = view.findViewById<ImageView>(R.id.image_poster)
textTitle.text = media[position].title
Glide.with(context).load(media[position].imageLink).into(imagePoster)
textTitle.text = media[position].title
Glide.with(context).load(media[position].imageLink).into(imagePoster)
guiMedia
} else {
convertView
}
return view
}
}