fix CustomAdapter repeating issue
This commit is contained in:
parent
ac8d3ab292
commit
b94b86b866
|
@ -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)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -29,15 +29,13 @@ class LibraryFragment : Fragment() {
|
||||||
val parser = AoDParser()
|
val parser = AoDParser()
|
||||||
mediaList = parser.listAnime()
|
mediaList = parser.listAnime()
|
||||||
|
|
||||||
println("setting adapter")
|
// create and set the adapter, needs context
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
adapter = CustomAdapter(requireContext(), mediaList)//ArrayAdapter(requireContext(), R.layout.linear_media, R.id.text_title, mediaList)
|
adapter = CustomAdapter(requireContext(), mediaList)//ArrayAdapter(requireContext(), R.layout.linear_media, R.id.text_title, mediaList)
|
||||||
|
|
||||||
list_library.adapter = adapter
|
list_library.adapter = adapter
|
||||||
adapter.notifyDataSetChanged()
|
//adapter.notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,26 +7,22 @@ import android.view.ViewGroup
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import org.mosad.teapod.R
|
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) {
|
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 {
|
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
|
||||||
return if (convertView == null) {
|
val view = convertView ?: LayoutInflater.from(context).inflate(R.layout.linear_media, parent, false)
|
||||||
val guiMedia = LayoutInflater.from(context).inflate(R.layout.linear_media, parent, false)
|
|
||||||
|
|
||||||
val textTitle = guiMedia.findViewById<TextView>(R.id.text_title)
|
val textTitle = view.findViewById<TextView>(R.id.text_title)
|
||||||
val imagePoster = guiMedia.findViewById<ImageView>(R.id.image_poster)
|
val imagePoster = view.findViewById<ImageView>(R.id.image_poster)
|
||||||
|
|
||||||
textTitle.text = media[position].title
|
textTitle.text = media[position].title
|
||||||
Glide.with(context).load(media[position].imageLink).into(imagePoster)
|
Glide.with(context).load(media[position].imageLink).into(imagePoster)
|
||||||
|
|
||||||
guiMedia
|
return view
|
||||||
} else {
|
|
||||||
convertView
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue