Extensión sintética Kotlin para ver

Tengo un layout con algunas vistas, una de ellas tiene el id title_whalemare

 import kotlinx.android.synthetic.main.controller_settings.* import kotlinx.android.synthetic.main.view_double_text.* class MainSettingsController : BaseMvpController<MvpView, MvpPresenter>() { val title: TextView = title_whalemare override fun getLayout(): Int { return R.layout.controller_settings } } 

Intento encontrarlo con kotlin extensions , pero no puedo porque me sale el siguiente error

Ninguno de los siguientes candidatos es aplicable debido a la falta de coincidencia del tipo de receptor Ninguno de los siguientes candidatos es aplicable debido a la falta de coincidencia del tipo de receptor

controller_settings.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/title_whalemare"/> </LinearLayout> 

¿Dónde está mi error?

Lo que el error intenta decirle es que solo puede acceder a las vistas con Extensiones desde dentro de una Activity o desde un Fragment . Esto se debe a que hace exactamente lo mismo para encontrar las vistas con las ID dadas que lo que haría manualmente, simplemente llama a Activity.findViewById() y Fragment.getView().findViewById() , y luego hace el tipo lanzar a la subclass específica de View . Supongo que su Controlador no es una Activity o Fragment .

Hay otra forma de usar extensiones, si puede pasar la vista raíz de su layout a su controller de alguna manera. Entonces podrías hacer lo siguiente:

 val title: TextView = rootView.title_whalemare 

De nuevo, esto solo está reemplazando la llamada View.findViewById() y el tipo de View.findViewById() .

  • Clases de Kotlin sin llaves
  • ¿Cómo crear un button en Kotlin que abre una nueva actividad (Android Studio)?
  • La biblioteca de Android no puede comstackr kotlin
  • ¿Cuál es el equivalente de este código de java a kotlin
  • Android Studio 3 no puede build fragments de kotlin
  • OnClick y TextView en Android Studio 3
  • Quiero agregar mi versión de kotlin al proyecto Gradel
  • La function Kotlin requiere nada, pero se define como un tipo diferente
  • Prueba unitaria de la function de extensión de Kotlin en las classs de Android SDK
  • No se puede acceder a EditText u otros componentes de la interfaz de usuario con Kotlin