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:
- Überschreiben Sie in Ihrem Adapter die Methode
getItemViewType(int position)und geben Sie einen eindeutigen Typ für jedes Element zurück. - Erstellen Sie in
onCreateViewHolderunterschiedliche ViewHolder je nach Typ. - Füllen Sie in
onBindViewHolderdie 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.