与元素类型"变量"关联的Android-Binding"type"不得包含"<"字符

Nic*_*ick 4 data-binding android

我收到以下错误:与元素类型"变量"关联的属性"type"的值不得包含"<"字符.

并且type ="ObservableField"/>在xml中显示为红色.

有任何想法吗?

 <?xml version="1.0" encoding="utf-8"?>
 <layout>

<data>

<import type="android.databinding.ObservableField"/>
<variable name="field" type="ObservableField<String>"/>

</data>

<android.support.constraint.ConstraintLayout
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"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="72dp"
    android:text="@{field.get()}"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="181dp"
    android:layout_marginEnd="149dp"
    android:layout_marginStart="147dp"
    android:layout_marginTop="191dp"
    android:text="Button"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView" />

</android.support.constraint.ConstraintLayout>

</layout>
Run Code Online (Sandbox Code Playgroud)

小智 12

有点晚了,但你可以通过分别替换<> for &lt;和来做到这一点&gt;.

像这样: <variable name="field" type="ObservableField&lt;String&gt;"/>

  • 这应该被接受。但是,即使Google的文档也显示了type属性中使用“ &lt;”和“&gt;”。参见:https://developer.android.com/topic/libraries/data-binding/observability#observable_Collections在第二个代码框中,您将在以下位置看到使用'&lt;'和'&gt;:'&lt;variable name =“ user” type =“ ObservableMap &lt;String,Object&gt;” /&gt;“。这里有什么合乎逻辑的解释吗? (3认同)

Abd*_*ery 2

试试这个

<?xml version="1.0" encoding="utf-8"?>
 <layout>

<data>

<variable name="field" type="android.databinding.ObservableField"/>

</data>

<android.support.constraint.ConstraintLayout
    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"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="72dp"
    android:text="@{field.get}"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="181dp"
    android:layout_marginEnd="149dp"
    android:layout_marginStart="147dp"
    android:layout_marginTop="191dp"
    android:text="Button"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView" />

</android.support.constraint.ConstraintLayout>

</layout>
Run Code Online (Sandbox Code Playgroud)

并访问了解更多详细信息