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

你可能感兴趣的:(Android随笔,kotlin)