由于是安卓原生开发,肯定是少不了写适配器的
考虑到即使是cv也很费时间,所以写一个通用的适配器
class GenericAdapter<T>(
private val items: List<T>,
private val layoutId: Int,
private val bind: (View, T) -> Unit
) : RecyclerView.Adapter<GenericAdapter.GenericViewHolder>() {
class GenericViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GenericViewHolder {
val view = LayoutInflater.from(parent.context).inflate(layoutId, parent, false)
return GenericViewHolder(view)
}
override fun onBindViewHolder(holder: GenericViewHolder, position: Int) {
bind(holder.itemView, items[position])
}
override fun getItemCount() = items.size
}
use
需要设置每行的个数
binding.welfareType.layoutManager = GridLayoutManager(requireContext(),2)
val adapter = GenericAdapter(listOf("Item 1", "Item 2"), R.layout.item_layout) { view, item ->
val textView: TextView = view.findViewById(R.id.textView)
textView.text = item
}
recyclerView.adapter = adapter