我使用android studio 2.1在android中使用最新的数据绑定。 使用可见性标记,如下面的代码所述,获取错误
java.lang.RuntimeException:发现数据绑定错误。 / data binding error **** msg:标识符必须具有XML文件中的用户定义类型。视图缺少它 文件:d:\ HP \ HealthPortal_Android \代码\程序\ SRC \主\水库\布局\ cardview_image_twotextview.xml 当地:68:90 - 68:93 数据绑定错误
<TextView
android:id="@+id/card_sub_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/card_title"
android:layout_marginLeft="@dimen/carview_margin"
android:layout_toRightOf="@+id/card_image"
android:text="@{toolsAndTrackersCards.subtitle}"
android:textColor="@color/black"
android:textSize="20sp"
android:visibility="@{toolsAndTrackersCards.subtitle.equals(@string/Empty_String) ? View.VISIBLE : View.GONE}"
/>
完成了一些google并没有找到解决方案。 @ string / Empty_String 在string.xml文件中定义为空字符串“”。我做错了。
答案 0 :(得分:12)
将此添加到您的cardview_image_twotextview.xml
:
<data>
<import type="android.view.View" />
<!--your variables-->
</data>
答案 1 :(得分:3)
可以在数据元素内使用零个或多个导入元素。 这些允许您轻松引用布局文件中的类 就像在Java中一样。
您需要导入View类才能使用其属性。
<data>
<import type="android.view.View"/>
</data>
您也可以推荐官方DataBinding guideline。
答案 2 :(得分:2)
要在字符串为空时隐藏视图,请在数据绑定中使用以下表达式
<data>
<import type="android.view.View"/>
<variable
name="item"
type="com.test.model.Item" />
</data>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{item.title}"
android:visibility='@{item.title.equals("") ? View.GONE : View.VISIBLE}'/>
注意::需要使用外部单引号字符串才能使用双引号 代表空字符串
如果要检查空和空,请使用以下代码:
<data>
<import type="android.view.View"/>
<import type="android.text.TextUtils"/>
<variable
name="item"
type="com.test.model.Item" />
</data>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{item.title}"
android:visibility="@{TextUtils.isEmpty(item.title) ? View.GONE : View.VISIBLE}"/>