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" 
  • ¿Integración de Kotlin en Java Code?
  • Comunicación de extensión Kotlin-android entre classs similar a la comunicación con otros fragments
  • Kotlin: No se puede encontrar la class de símbolo Fragmento u otras classs de Android
  • Diseño inflado por progtwigción con las extensiones de Kotlin para Android
  • ¿Cuál es la forma correcta de declarar el tipo de variable en Android con Kotlin?
  • Cómo usar null con kotlin @Parcelize
  • Cómo usar AndroidAnnotación @ShanetworkingPref con Kotlin
  • Kotlin || ¿No puedo agregar la biblioteca a Mi aplicación?
  • No se pueden agregar los fragments usando la function de Extensión de Kotlin
  • Por qué los numbers que aceptan nulos no son para preservar la identidad
  • Métodos estáticos como en la aplicación de Android con kotlin