如何使“this”成为Listener的参考,而不是Kotlin中的Activity?

我有一个类似于以下示例的情况,当我调用它时引用了Activity而不是OnClickListener 。 有没有办法让这个听众的参考?

 private fun onClick() = View.OnClickListener { // How to make 'this' a reference of OnClickListener instead of the Activity } 

One Solution collect form web for “如何使“this”成为Listener的参考,而不是Kotlin中的Activity?”

实现这个最简单的方法是使用object语法而不是lambda(虽然使用起来有点嘈杂):

 private fun onClick() = object: View.OnClickListener { override fun onClick(v: View){ //this in the context of listener } } 

否则,你必须将实现包装到另一个与接收方一起使用lambdas的高阶函数中。 我觉得在这里会过度杀伤。

  • 在kotlin中重新创建对象
  • 有没有办法编写一个扩展函数来改变对象的值?
  • 如何在android studio中使用kotlin链接按钮和网站
  • 将@JvmStatic和@JvmField自动应用于Kotlin中的所有文件
  • 为什么Kotlin编译器需要var属性的显式初始化器?
  • 创建不共享通用参数的多个Kotlin构造函数
  • 如何在Kotlin中执行bash命令
  • 扔在Kotlin的操作员
  • 为什么解构声明不能用在expression式中?
  • 将多个方法合并为一个函数的方法
  • 使用kotlin在Spring Boot中自定义Jersey ExceptionMapper
  • Kotlin language will be the best programming language for Android.