1.Java中的接口回调实现(支持多方法回调)
private OnClickListener onClickListener;
public void setOnClickListener(OnClickListener onClickListener) {
this.onClickListener = onClickListener;
}
interface OnClickListener {
void onClick()
void onItemClick()
}
onClickListener.onClick();
interface OnClickListener {
void onClick(int position)
}
onClickListener.onClick(position);
2.Kotlin中的接口回调实现(适用于接口中单个方法)
2.1方法无参无返回值回调
fun setClickListener(listener: () -> Unit) {
this.listener = listener
}
private lateinit var listener: () -> Unit
listener.invoke()
2.2 方法有参无返回值回调
private lateinit var listener: (position:Int) -> Unit
fun setClickListener(listener: (position:Int) -> Unit) {
this.listener = listener
}
listener.invoke(position)
2.3 方法有参有返回值回调
private lateinit var listener: (position:Int) -> Int
fun setClickListener(listener: (position:Int) -> Int) {
this.listener = listener
}
listener.invoke(position)
view.setClickListener{position ->
...
0 //返回值放在最后
}
3.Kotlin多方法接口回调
interface TestInterface {
fun onClick(position:Int) //带参数方法回调
fun onItemClick()
}
fun setInterface(listener: TestInterface) {
this.listener = listener
}
private lateinit var listener: TestInterface
listener.onClick(position)
listener.onItemClick()