Sobes.tech
Junior — Middle

Cum se poate crea o listă care conține zece elemente sau tipuri diferite de celule?

sobes.tech AI

Răspuns de la AI

Pentru a crea o listă cu zece elemente sau tipuri diferite de celule în Android, se utilizează de obicei RecyclerView cu mai multe tipuri de ViewHolder.

Pași principali:

  1. Suprascrieți metoda getItemViewType(int position) în adaptor și returnați un tip unic pentru fiecare element.
  2. În onCreateViewHolder, creați diferite ViewHolder în funcție de tip.
  3. În onBindViewHolder, completați datele conform tipului de ViewHolder.

Exemplu:

class MultiTypeAdapter(private val items: List<Item>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
    override fun getItemViewType(position: Int): Int {
        return items[position].type // tip de la 0 la 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))
            // ... până la 9
            else -> throw IllegalArgumentException("Tip de vizualizare necunoscut")
        }
    }

    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
}

Astfel, puteți afișa diferite tipuri de celule într-o listă într-un mod flexibil.