Sobes.tech
Junior — Middle

Wie kann man eine Liste erstellen, die zehn verschiedene Elemente oder Zelltypen enthält?

sobes.tech KI

Antwort von AI

Um eine Liste mit zehn verschiedenen Elementen oder Zelltypen in Android zu erstellen, verwendet man in der Regel RecyclerView mit mehreren ViewHolder-Typen.

Hauptschritte:

  1. Überschreiben Sie in Ihrem Adapter die Methode getItemViewType(int position) und geben Sie einen eindeutigen Typ für jedes Element zurück.
  2. Erstellen Sie in onCreateViewHolder unterschiedliche ViewHolder je nach Typ.
  3. Füllen Sie in onBindViewHolder die Daten entsprechend dem Typ des ViewHolders.

Beispiel:

class MultiTypeAdapter(private val items: List<Item>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
    override fun getItemViewType(position: Int): Int {
        return items[position].type // Typ von 0 bis 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))
            // ... bis 9
            else -> throw IllegalArgumentException("Unbekannter Ansichtstyp")
        }
    }

    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
}

Auf diese Weise können verschiedene Zelltypen flexibel in einer Liste angezeigt werden.