La extensión sintética de Kotlin y varias incluyen el mismo layout

Cómo acceder para ver usando la extensión sintética de kotlin si tengo un layout como el siguiente:

file: two_days_view.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="wrap_content" android:orientation="vertical"> <include android:id="@+id/day1" layout="@layout/day_row" android:layout_width="match_parent" android:layout_height="wrap_content" /> <include android:id="@+id/day2" layout="@layout/day_row" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> 

file: day_row.xml

  <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/dayName" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

¿Cómo acceder a DayName? Busqué algo como esto:

 day1.dayName.text = "xxx" day2.dayName.text = "sss" 

Veo en Studio que tengo acceso a dayName pero ¿a cuál de dayName TextView se hace reference?

Normal si solo tengo un layout incluido, funciona bien. Pero ahora he incluido varias veces el mismo layout.

por supuesto que siempre puedo hacer:

 day1.findViewById(R.id.dayName).text = "xxx" 

pero estoy buscando una buena solución. 🙂

Como regla general, no debe build layouts que terminen teniendo múltiples vistas con el mismo ID, por esta misma razón.

Pero, para resolver su problema: en lugar de importar

kotlinx.android.synthetic.main.layout.day_row.*

puedes importar

kotlinx.android.synthetic.main.layout.day_row.view.* (Observe la .view adicional al final).

Esto importará las vistas no como properties en el nivel de Actividad / Fragmento, sino como properties de extensión para View . De esta forma, puede hacerlo de la manera que desee, suponiendo que day1 y day2 contengan las vistas que desea:

 day1.dayName.text = "xxx" day2.dayName.text = "sss" 
  • La function Kotlin requiere nada, pero se define como un tipo diferente
  • Cómo modificar la variable de instancia de AsyncTask por separado
  • Android ProgressBar indeterminado no aparece
  • Comience un proyecto con la ayuda de Kotlin en Android
  • En Kotlin Lenguaje de progtwigción importancia de varargs en términos de usos
  • Kotlin: configuration de un boolean privado en class Java a través de una class de datos en Kotlin. ¿Por qué no puedo hacer esto?
  • ¿Cuál es la diferencia entre arrayListOf y mutableListOf, cuál es mejor?
  • Error: ejecución fallida para la tarea ': aplicación: limpiar'. No se puede borrar el file
  • Comprobación de conectividad no funciona en Android Oreo Kotlin
  • Kotlinx no puede resolver el símbolo "sintético"
  • Kotlin: No se puede encontrar la class de símbolo Fragmento u otras classs de Android