Передача строки во включенный макет через привязку данных не работает - PullRequest
0 голосов
/ 22 сентября 2018

Я пытаюсь передать простую строку в макет из моего основного макета, используя функцию привязки данных 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>

1 Ответ

0 голосов
/ 22 сентября 2018

OK.Догадаться.Публиковать здесь для других.То, чего мне не хватало, это на самом деле использовать DataBindingUtil для установки представления контента.

Добавьте в свой onCreate () следующее:

DataBindingUtil.setContentView(this, R.layout.mylayout);
...