¿Cómo hacer reference a "esto" en oyentes anónimos cuando se utiliza notación corta?

En Kotlin, ¿hay alguna manera de hacer reference a la instancia del oyente cuando se usa esta notación breve para las classs anónimas? En este caso, this refiere al context externo (por ejemplo, la instancia de la Activity ) donde se define la view :

 view.setOnClickListener { val self: View.OnClickListener = this // Not compiling, "this" references outer context } 

Cuando se utiliza la notación más larga donde se indica explícitamente la interfaz que se implementará y donde se anula explícitamente el método de callback, se puede hacer reference al oyente a través de this :

 view.setOnClickListener(object: View.OnClickListener { override fun onClick(v: View) { val self: View.OnClickListener = this // Ok } }) 

El término notación abreviada para las classs anónimas no es del todo correcto. En realidad, es una notación corta para funciones anónimas, es decir, lambdas. Por supuesto, bajo el capó se comstackn en classs, pero desde el punto de vista del lenguaje de progtwigción, las funciones anónimas no tienen identidades y, por lo tanto, no tiene sentido referirse a sus instancias a través de this .

  val animation = object : Animation() { override fun applyTransformation(interpolatedTime: Float, t: Transformation) { val layoutParam: RelativeLayout.LayoutParams? = playerView.layoutParams as RelativeLayout.LayoutParams? layoutParam?.topMargin = convertDpToPixel(position, this@SurahActivity).toInt() playerView.layoutParams = layoutParam } } 
  • Companion se beneficia de la posibilidad de implementar interfaces
  • Kotlin HTML-Builder
  • ¿Cómo puedo generar un parámetro constructor del tipo "Unidad" de Kotlin con un parámetro de tipo único con kotlinpoet?
  • ¿Cómo puedo get mis testings JUnit para comstackr y ejecutar en mi proyecto Kotlin + Gradle?
  • Sobrecarga de setter en Kotlin
  • Detectar events táctiles en superposition y pasarlos más allá
  • ¿Cómo escribir un inicializador estático a nivel de package en Kotlin?
  • Argumentos pnetworkingeterminados de Kotlin en error de interfaz?
  • Escribir un Inputstream grande para archivar en Kotlin
  • La aplicación no implementa dagger.android.HasDispatchingActivityInjector
  • ¿Cómo compartir PDF a través de aplicaciones de correo y Google Drive sin Drive API?