@@ -58,16 +58,16 @@ abstract class SimpleListAdapter<T, VB : ViewBinding>(
58
58
diffCallback : DiffUtil .ItemCallback <T >
59
59
) : ListAdapter<T, SimpleListAdapter.BindingViewHolder<VB>>(diffCallback) {
60
60
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
63
63
64
64
override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ): BindingViewHolder <VB > =
65
65
BindingViewHolder (ViewBindingUtil .inflateWithGeneric<VB >(this , parent)).apply {
66
66
itemView.setOnClickListener {
67
- onItemClickListener?.invoke (getItem(adapterPosition), adapterPosition)
67
+ onItemClickListener?.onItemClick (getItem(adapterPosition), adapterPosition)
68
68
}
69
69
itemView.setOnLongClickListener {
70
- onItemLongClickListener?.invoke (getItem(adapterPosition), adapterPosition)
70
+ onItemLongClickListener?.onItemClick (getItem(adapterPosition), adapterPosition)
71
71
onItemLongClickListener != null
72
72
}
73
73
}
@@ -76,17 +76,21 @@ abstract class SimpleListAdapter<T, VB : ViewBinding>(
76
76
onBindViewHolder(holder.binding, getItem(position), position)
77
77
}
78
78
79
- fun doOnItemClick (block : ( T , Int ) -> Unit ) {
79
+ fun doOnItemClick (block : OnItemClickListener < T > ) {
80
80
onItemClickListener = block
81
81
}
82
82
83
- fun doOnItemLongClick (block : ( T , Int ) -> Unit ) {
83
+ fun doOnItemLongClick (block : OnItemClickListener < T > ) {
84
84
onItemLongClickListener = block
85
85
}
86
86
87
87
abstract fun onBindViewHolder (binding : VB , item : T , position : Int )
88
88
89
89
class BindingViewHolder <VB : ViewBinding >(val binding : VB ) : RecyclerView.ViewHolder(binding.root)
90
+
91
+ interface OnItemClickListener <T > {
92
+ fun onItemClick (item : T , position : Int )
93
+ }
90
94
}
91
95
92
96
abstract class SimpleIntListAdapter <VB : ViewBinding > : SimpleListAdapter <Int , VB >(IntDiffCallback ())
0 commit comments