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" 
  • Diseño inflado por progtwigción con las extensiones de Kotlin para Android
  • NullPointerException en android.support.v4.app.NotificationCompatBase $ Action.getIcon ()
  • ¿Insertar o agregar un elemento en ArrayList en Kotlin?
  • Cambiar Observable desde AutoCompleteTextView a EditText
  • Comprobación de conectividad no funciona en Android Oreo Kotlin
  • Advertencia obsoleta de Kotlin Runtime (complemento Kotlin 1.1.2-release-Studio2.3-3)
  • ¿Cómo hacer AppBar universal con Anko DSL?
  • Kotlin RC NoClassDefFoundError
  • "Las proyecciones no están permitidas para los arguments inmediatos de un supertipo" Kotlin Android Studio
  • Compara una vista de text con una string en Kotlin
  • Extensión de Kotlin Any? .toString ()