为什么ObservableArrayMap无法通过android绑定传递给包含的布局?

时间:2016-11-28 13:43:45

标签: android android-layout android-databinding

当ObservableArrayMap传递给包含的布局时,会出现编译错误:

错误:任务':app:compileDebugJavaWithJavac'执行失败。

  

java.lang.RuntimeException:发现数据绑定错误。   **** /数据绑定错误**** msg:找不到ObservableArrayMap的类型元素   文件:d:.... \布局\ activity_home.xml   当前:35:54-35:56   **** \数据绑定错误****

 <?xml version="1.0" encoding="utf-8"?>
        <layout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:bind="http://schemas.android.com/apk/res-auto">
           <data>
               <import type="android.databinding.ObservableArrayMap"/>
               <variable name="map" type="ObservableArrayMap&lt;String, String&gt;"/>
           </data>
           <LinearLayout
               android:orientation="vertical"
               android:layout_width="match_parent"
               android:layout_height="match_parent">
               <include layout="@layout/name"
                   bind:map="@{map}"/>
               <include layout="@layout/contact"
                   bind:map="@{map}"/>
           </LinearLayout>
        </layout>

看起来编译器没有识别ObservableArrayMap类型。是否还有其他语法来添加我缺少的类型?

1 个答案:

答案 0 :(得分:0)

这对我有用:

SHELL

请注意,IDE会为变量显示红色,但无论如何它都会编译并运行。

- 编辑 -

Android Studio中有一个与2.3 canary 3相关的错误与<?xml version="1.0" encoding="utf-8"?> <layout> <data> <import type="android.databinding.ObservableArrayMap" /> <variable name="map" type="ObservableArrayMap&lt;String, String&gt;" /> </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:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{map.text}" app:layout_constraintBottom_toBottomOf="@+id/activity_main" app:layout_constraintLeft_toLeftOf="@+id/activity_main" app:layout_constraintRight_toRightOf="@+id/activity_main" app:layout_constraintTop_toTopOf="@+id/activity_main" /> </android.support.constraint.ConstraintLayout> </layout> 相关。您可以解决此问题,直到通过在包含的布局中使用非泛型变量在以后的版本中修复它。这是我的包含布局:

ObservableArrayMap

感谢您找到这个!