Junior — Middle
Come si può creare una lista contenente dieci elementi o tipi di celle diversi?
sobes.tech AI
Risposta dell'AI
Per creare un elenco con dieci elementi o tipi di celle diversi in Android, si utilizza generalmente RecyclerView con più tipi di ViewHolder.
Passaggi principali:
- Sovrascrivere il metodo
getItemViewType(int position)nell'adapter, restituendo un tipo unico per ogni elemento. - In
onCreateViewHolder, creare diversi ViewHolder in base al tipo. - In
onBindViewHolder, riempire i dati in base al tipo di ViewHolder.
Esempio:
class MultiTypeAdapter(private val items: List<Item>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun getItemViewType(position: Int): Int {
return items[position].type // tipo da 0 a 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))
// ... fino a 9
else -> throw IllegalArgumentException("Tipo di vista sconosciuto")
}
}
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
}
In questo modo, è possibile visualizzare in modo flessibile diversi tipi di celle in un'unica lista.