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:
- Pārrakstiet metodi
getItemViewType(int position)adapterī un atgrieziet unikālu tipu katram elementam. onCreateViewHolderizveidojiet dažādus ViewHolder atkarībā no tipa.onBindViewHolderaizpildiet 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ā.