RecyclerViewAdapter IndexOutOfBoundException :코 틀린 내가 코 틀린 자바에서 이동이 recyclerViewAdapter를 생성 한
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
}
}
문제는 내가 코 틀린에 list.size
을 수행 할 때 아마, 그것은 (예를 들어,도 크기 인덱스를 포함한다는 것입니다 크기는 4이고 {0,1,2,3,4}를 고려합니다. 사이클을 위해 사용할 때 until
으로 {0,1,2,3}을 잠글 수 있지만이 경우에는 어떻게해야할지 모릅니다. 누구든지 해결 방법을 알고 있습니까? 감사합니다
목록이 비어있을 때 1을 반환하는 이유는 무엇입니까? –
예를 들어 "No message received"@MuratK와 함께 메시지를 게시합니다. 어댑터가 onBindViewHolder 방법에 위치 1을 보내고 당신이 빈에서 첫 번째 항목을 얻을하려고하기 때문에 – nani