Implementando la interfaz Java – Kotlin

Solo comenzando con Kotlin yy he leído la documentation oficial, tengo problemas para implementar una interfaz desde una biblioteca en kotlin.

Aquí está la interfaz en java:

public interface ResultCallBack { void detailsRetrieved(Obj var1, AnotherInterface var2); void anotherDataRetrieved(int var1, AnotherInterface var2); } 

el método que estoy llamando desde kotlin es así:

  public static void startLibActivity(Context context, ResultCallBack callback) { sLuhnCallback = callback; context.startActivity(new Intent(context, Library.class)); } 

¿Cómo llamo startLibActivity de kotlin e implemento ResultCallBack también?

Creo que estoy atascado con esta testing:

Library.startLibActivity(activity, {})

He intentado muchas posibilidades dentro de {} , todavía tengo problemas con la implementación correcta.

Como su interfaz java no es una interfaz funcional SAM, no puede usar la expresión lambda {} en Kotlin directamente.

Puede implementar una interfaz Java en Kotlin, por ejemplo:

 class KotlinResultCallBack : ResultCallBack { override fun detailsRetrieved(var1: Obj?, var2: AnotherInterface?) = TODO() override fun anotherDataRetrieved(var1: Int, var2: AnotherInterface?) = TODO() } 

Luego puede llamar al método startLibActivity siguiente manera:

 startLibActivity(context, KotlinResultCallBack()) 

También puede usar una expresión de object para crear una instancia de class anónima que implemente una interfaz Java, por ejemplo:

 startLibActivity(context, object : ResultCallBack { override fun detailsRetrieved(var1: Obj?, var2: AnotherInterface?) = TODO() override fun anotherDataRetrieved(var1: Int, var2: AnotherInterface?) = TODO() }) 
  • Cómo usar volátiles en Kotlin
  • La documentation de Kotlin no admite tags como '<p>'.
  • No se puede acceder a la variable desde la class interna: Android Kotlin
  • Cómo get un package de kotlin por reflexión
  • Propiedad observable que permite agregar observadores en time de ejecución
  • Necesidad de get una ruta absoluta de una página web con Java
  • Tener problemas para escribir en EditText en Kotlin
  • Enlazar list de objects usando Guice + Kotlin
  • ¿Cómo puedo get una reference a un object Kotlin por su nombre?
  • Vista de búsqueda abierta de Android programáticamente
  • Kotlin: eliminar nulos de una list (u otra transformación funcional)