Sobes.tech
Junior — Middle

Kā izveidot sarakstu, kas satur desmit dažādus elementus vai šūnu tipus?

sobes.tech AI

Atbilde no AI

Lai izveidotu sarakstu ar desmit dažādiem elementiem vai šūnu tipiem Android, parasti izmanto RecyclerView ar vairāku ViewHolder tipu.

Galvenie soļi:

  1. Pārrakstiet metodi getItemViewType(int position) adapterī un atgrieziet unikālu tipu katram elementam.
  2. onCreateViewHolder izveidojiet dažādus ViewHolder atkarībā no tipa.
  3. onBindViewHolder aizpildiet datus atbilstoši ViewHolder tipam.

Piemērs:

class MultiTypeAdapter(private val items: List<Item>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
    override fun getItemViewType(position: Int): Int {
        return items[position].type // tips no 0 līdz 9
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
        return when(viewType) {
            0 -> Type0ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_type0, parent, false))
            1 -> Type1ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_type1, parent, false))
            // ... līdz 9
            else -> throw IllegalArgumentException("Nezināms skata tips")
        }
    }

    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        when(holder) {
            is Type0ViewHolder -> holder.bind(items[position])
            is Type1ViewHolder -> holder.bind(items[position])
            // ...
        }
    }

    override fun getItemCount() = items.size
}

Šādi var elastīgi attēlot dažādus šūnu tipus vienā sarakstā.