Kotlin使用接口回调的简单写法

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类
    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()

你可能感兴趣的:(Kotlin使用接口回调的简单写法)