我想从 android 布局数据绑定(bind)中的接口(interface)常量导入一些字符串。
如果我使用此行,Gradle 构建会失败
android:drawableRight="@{item.icon.equalsIgnoreCase(Constants.FOOD_TYPE_NON_VEG)? @drawable/ic_nonveg : @drawable/ic_veg}"
但下面的行有效
android:drawableRight="@{item.icon.equalsIgnoreCase(`nonveg`)? @drawable/ic_nonveg : @drawable/ic_veg}"
示例 xml 为
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="Constants"
type="com.amelio.utils.Constants"/>
</data>
<TextView
style="@style/tvVerySmall"
android:layout_width="match_parent"
android:drawableRight="@{item.icon.equalsIgnoreCase(`nonveg`)? @drawable/ic_nonveg : @drawable/ic_veg}"
/>
</layout>
Constants接口(interface)是
public interface Constants {
String FOOD_TYPE_NON_VEG = "nonveg";
}
如何在数据绑定(bind)中从 xml 布局中的界面导入字符串?
最佳答案
使用导入
,而不是变量
:
<data>
<import type="yourfullpackagepath.Constants"/>
</data>
关于android - 如何从Android数据绑定(bind)中的类导入公共(public)静态字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50251383/