使用 kotlin 实现 recyclerview 的条目点击事件(lambda 表达式)
首先看一下类 Java 的实现方式
自定义接口从而实现点击事件的处理
// 定义一个接口,用接口的形式来处理点击事件
interface OnItemClickListener {
fun onItemClick(pos: Int)
}
// 自定义一个 Adapter 类
class ItemAdapter() {
var mOnItemClickListener: OnItemClickListener? = null
fun setOnItemClickListener(onItemClickListener: OnItemClickListener){
mOnItemClickListener = onItemClickListener
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder?, position: Int) {
mOnItemClickListener?.onItemClick(position)
}
}
// 接着在 Activity 中使用
class ItemActivity() {
var adapter = SomeListAdapter(context)
adapter.setOnItemClickListener ( object: ArticleListAdapter.Companion.OnItemClickListener {
override fun onItemClick(pos: Int) {
// do something
}
})
}