ListAdapterのサンプル実装
abstract class ListAdapter
サンプル実装
data class Tweet( val text: String, val id: Long, ) class TweetAdapter( private val onClick: (Tweet) -> Unit ) : ListAdapter<Tweet, TweetAdapter.ItemViewHolder>(DIFF_UTIL_ITEM_CALLBACK) { class ItemViewHolder(val view: View) : RecyclerView.ViewHolder(view) { --- } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { val adapterLayout = LayoutInflater.from(parent.context).inflate(R.layout.list_tweet, parent, false) return ItemViewHolder(adapterLayout) } override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { val tweet = getItem(position) holder.view.setOnClickListener { onClick(tweet) } } companion object { val DIFF_UTIL_ITEM_CALLBACK = object : DiffUtil.ItemCallback<Tweet>() { override fun areItemsTheSame(oldItem: Tweet, newItem: Tweet) = oldItem.id == newItem.id override fun areContentsTheSame(oldItem: Tweet, newItem: Tweet) = oldItem == newItem } } }