此方式仅适用单个方法
1、无参,无返回值
fun setClickListener(listener: () -> Unit) {
this.listener = listener
}
private lateinit var listener: () -> Unit
// 使用的时候:
listener.invoke()
2、有参、无返回值
private lateinit var listener: (position:Int) -> Unit
fun setClickListener(listener: (position:Int) -> Unit) {
this.listener = listener
}
// 使用时:
listener.invoke(position)
3、有参、有返回值
private lateinit var listener: (position:Int) -> Int
fun setClickListener(listener: (position:Int) -> Int) {
this.listener = listener
}
// 使用时:
listener.invoke(position)
// 外部调用时方便写法:
view.setClickListener{position ->
...
//最后需要返回值
0
}
网友评论