ich von Java Kotlin und erstellen Sie diese recyclerViewAdapter verschoben haben:Kotlin RecyclerViewAdapter IndexOutOfBoundException
class MisPedidosAdapter(private val context: Context, private var pedidos: List<ParseObject>?, private val onMisPedidosClickListener: OnMisPedidosClickListener) : CustomRecyclerViewAdapter() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
when(getItemViewType(viewType)){
STATIC ->return NoMisPedidosHolder(LayoutInflater.from(parent.context).inflate(R.layout.no_pedidos_recibidos_item, parent, false))
else -> return MisPedidosHolder(LayoutInflater.from(parent.context).inflate(R.layout.mis_pedidos_item, parent, false), onMisPedidosClickListener, pedidos)
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (getItemViewType(position) == STATIC)
{
val mHolder = holder as NoMisPedidosHolder
}
else
{
val mHolder = holder as MisPedidosHolder
val pedido = pedidos!![position]
val menuShop = pedido.getParseObject("menu_shop")
mHolder.numPlati.text = pedido.getNumber("quantity")?.toInt().toString()
mHolder.horario.text = pedido.getString("horario")
mHolder.dateOrder.text = StringUtils.getDataFormatted("dd MMM yyyy", pedido.createdAt!!)
}
}
override fun getItemViewType(position: Int): Int = when{
pedidos!!.isEmpty() -> STATIC
else -> DINAMIC
}
override fun getItemCount(): Int = when{
pedidos!!.isEmpty() -> 1
else -> pedidos!!.size
}
fun updatePedidos(pedidos: List<ParseObject>) {
this.pedidos = pedidos
notifyDataSetChanged()
}
companion object {
private val STATIC = 0
private val DINAMIC = 1
}
}
das Problem ist, dass, wahrscheinlich, wenn ich list.size
in Kotlin tun es enthält auch die Größe Index (zum Beispiel, wenn die Größe ist 4, es gilt {0,1,2,3,4}). Wenn ich für den Zyklus verwende, kann ich {0, 1, 2, 3} mit until
sperren, aber in diesem Fall weiß ich nicht, wie es geht. Wer weiß einen Weg, um es zu lösen? Dank
Gibt es einen Grund, warum Sie 1 zurückgeben, wenn Ihre Liste leer ist? –
Ich poste zum Beispiel eine Nachricht mit "Keine Nachricht erhalten" @MuratK. – nani