가장 간단한 List<String>을 받아서 리스트뷰에 뿌려주는 코드입니다
class Adapter : ListAdapter<String, Adapter.ViewHolder>(diffUtil) {
inner class ViewHolder(private val binding: AdapterItemBinding) : RecyclerView.ViewHolder(binding.root) {
fun bind(str: String) {
binding.item.text = str
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(AdapterItemBinding.inflate(LayoutInflater.from(parent.context), parent, false))
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bind(currentList[position])
}
companion object {
val diffUtil = object : DiffUtil.ItemCallback<String>() {
override fun areItemsTheSame(oldItem: String, newItem: String): Boolean {
return oldItem == newItem
}
override fun areContentsTheSame(oldItem: String, newItem: String): Boolean {
return oldItem == newItem
}
}
}
}
ViewHolder -> bind() 부분을
AViewHolder는 binding.item.text=str + 1
BViewHolder는 binding.item.text=str + 2
CViewHolder는 binding.item.text=str + 3
이렇게 나누고 나머지 코드는 재사용해서 사용하고 싶은데
방법을 도저히 모르겠습니다....