Reputation: 179
[![enter image description here][1]][1]How can I sort locales and visitantes per minute if I am using sealed class
The Model
sealed class Item {
class ItemOne(var idJugador: String = "", var nombre: String = "", var minuto: String = "", var tarjeta: String) : Item()
class ItemTwo(var idJugador: String = "", var nombre: String = "", var minuto: String = "", var tarjeta: String) : Item()
}
This is Adapter
class DetallesAdapter(
private val locales: ArrayList<Item>? = ArrayList(),
private val visitantes: ArrayList<Item>? = ArrayList()
) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
//val itemTotal = ArrayList<Item.ItemOne>().sortedBy {it.minuto} + ArrayList<Item.ItemTwo>().sortedBy {it.minuto}
val itemTotal = locales!! + visitantes!!
override fun getItemCount(): Int = itemTotal.size
........
}
Upvotes: 0
Views: 637
Reputation: 179
class DetallesAdapter(
private val locales: List<Item> = ArrayList(),
private val visitantes: List<Item> = ArrayList()
) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
var context: Context? = null
val itemTotal = (locales!! + visitantes!!).sortedBy { it.minuto }
// get the size of the list
override fun getItemCount(): Int = itemTotal.size
............
}
sealed class Item {
abstract var minuto: String
class GolLocal(var idJugador: String = "", var nombre: String = "",
override var minuto: String = "", var tarjeta: String) : Item()
class GolVisi(var idJugador: String = "", var nombre: String = "",
override var minuto: String = "", var tarjeta: String) : Item()
}
Upvotes: 0
Reputation: 8422
You can declare minuto
property in Item
class and then just use sortedBy
:
sealed class Item {
abstract var minuto: String
class ItemOne(var idJugador: String = "", var nombre: String = "", override var minuto: String = "", var tarjeta: String) : Item()
class ItemTwo(var idJugador: String = "", var nombre: String = "", override var minuto: String = "", var tarjeta: String) : Item()
}
...
val itemTotal = (locales!! + visitantes!!).sortedBy { it.minuto }
Upvotes: 2