@@ -58,16 +58,16 @@ abstract class SimpleListAdapter<T, VB : ViewBinding>(
5858 diffCallback : DiffUtil .ItemCallback <T >
5959) : ListAdapter<T, SimpleListAdapter.BindingViewHolder<VB>>(diffCallback) {
6060
61- private var onItemClickListener: (( T , Int ) -> Unit ) ? = null
62- private var onItemLongClickListener: (( T , Int ) -> Unit ) ? = null
61+ private var onItemClickListener: OnItemClickListener < T > ? = null
62+ private var onItemLongClickListener: OnItemClickListener < T > ? = null
6363
6464 override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ): BindingViewHolder <VB > =
6565 BindingViewHolder (ViewBindingUtil .inflateWithGeneric<VB >(this , parent)).apply {
6666 itemView.setOnClickListener {
67- onItemClickListener?.invoke (getItem(adapterPosition), adapterPosition)
67+ onItemClickListener?.onItemClick (getItem(adapterPosition), adapterPosition)
6868 }
6969 itemView.setOnLongClickListener {
70- onItemLongClickListener?.invoke (getItem(adapterPosition), adapterPosition)
70+ onItemLongClickListener?.onItemClick (getItem(adapterPosition), adapterPosition)
7171 onItemLongClickListener != null
7272 }
7373 }
@@ -76,17 +76,21 @@ abstract class SimpleListAdapter<T, VB : ViewBinding>(
7676 onBindViewHolder(holder.binding, getItem(position), position)
7777 }
7878
79- fun doOnItemClick (block : ( T , Int ) -> Unit ) {
79+ fun doOnItemClick (block : OnItemClickListener < T > ) {
8080 onItemClickListener = block
8181 }
8282
83- fun doOnItemLongClick (block : ( T , Int ) -> Unit ) {
83+ fun doOnItemLongClick (block : OnItemClickListener < T > ) {
8484 onItemLongClickListener = block
8585 }
8686
8787 abstract fun onBindViewHolder (binding : VB , item : T , position : Int )
8888
8989 class BindingViewHolder <VB : ViewBinding >(val binding : VB ) : RecyclerView.ViewHolder(binding.root)
90+
91+ interface OnItemClickListener <T > {
92+ fun onItemClick (item : T , position : Int )
93+ }
9094}
9195
9296abstract class SimpleIntListAdapter <VB : ViewBinding > : SimpleListAdapter <Int , VB >(IntDiffCallback ())
0 commit comments