Nota de actualización:
El ejemplo anterior funciona correctamente , porque la versión 1.0-rc4 solucionó el problema de necesitar la variable innecesaria.
Pregunta original:
Hago exactamente como se describe en la documentación y no funciona:
main.xml:
<layout xmlns:andr...
<data>
</data>
<include layout="@layout/buttons"></include>
....
botones.xml:
<layout xmlns:andr...>
<data>
</data>
<Button
android:id="@+id/button"
...." />
MyActivity.java:
... binding = DataBindingUtil.inflate...
binding.button; ->cannot resolve symbol 'button'
como conseguir el boton?
java
android
data-binding
android-button
android-databinding
Kamil Nekanowicz
fuente
fuente

<include layout="@layout/buttons" android:id="@+id/buttons"/>. Aún necesita la identificación para que produzca un campo público para que pueda acceder a la Vista de botones.binding.{id of include tag}.buttonlugar debinding.button. Me tomó un tiempo resolverlo.Ejemplo fácil y completo
Este ejemplo ayuda a pasar un valor
<includey acceder a las vistas incluidas en el código.Paso 1
Tienes
layout_common.xml, quieres pasarStringal diseño incluido.Va a crear
Stringvariable en el diseño y se refieren esteStringaTextView.Paso 2
Incluya este diseño en el diseño principal. Dar un
iddiseño incluido para que podamos usarlo en la clase de enlace. Ahora puede pasar StringpassedTexta su<includeetiqueta.activity_main.xmlbinding.includedLayout.textViewen tu clase.Puede pasar cualquier variable al diseño incluido como el anterior.
Nota Ambos diseños (padre e incluido) deben estar
binding layoutenvueltos con<layoutfuente
binding.includedLayout.button.setOnClickListenersería la alternativa, pero ¿qué pasa si quiero usar elonClickatributo en XML? sí mismo ?OnClickListeneral diseño incluido. incluso puedes pasar cualquier cosa en la encuadernación. Marque esta respuesta, si necesita más ayuda, hágamelo saber. stackoverflow.com/a/51722829/6891563passedText. La única diferencia es que no incluyo el código MainActivity porque solo quiero pasar el recurso de cadena en <include> y dejarlo así. ¿Por qué siempre está en blanco?Otra cosa interesante sobre esto es que puede pasar variables al diseño importado desde el cuaderno de esta manera:
fuente
Puede hacer que su enlace funcione en su inclusión simplemente agregando una ID así:
fuente
solo establece una identificación para tu diseño de inclusión
luego
BUTTONSBINDINGes res / layout / buttons.xmlahora :
fuente