Я пытаюсь передать простую строку в макет из моего основного макета, используя функцию привязки данных Android.Он компилируется нормально, но значение, передаваемое в include, фактически не передается.то есть - он не отображается в моем макете.
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <variable name="mytitle" type="java.lang.String"/> </data> <android.support.constraint.ConstraintLayout android:background="@color/black_background" android:layout_width="match_parent" android:layout_height="match_parent"> <include android:id="@+id/include1" layout="@layout/mylayout" app:mytitle="@{@string/categories}" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"/> </android.support.constraint.ConstraintLayout> </layout>
Мой включаемый макет:
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="mytitle" type="java.lang.String"/> </data> <android.support.constraint.ConstraintLayout xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:background="@color/black_background" android:layout_height="match_parent"> <TextView android:id="@+id/category_header_textview" style="@style/WhiteText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{mytitle}" app:layout_constraintStart_toStartOf="parent" /> </android.support.constraint.ConstraintLayout> </layout>
OK.Догадаться.Публиковать здесь для других.То, чего мне не хватало, это на самом деле использовать DataBindingUtil для установки представления контента.
Добавьте в свой onCreate () следующее:
DataBindingUtil.setContentView(this, R.layout.mylayout);