how to import public static field from class in android data binding

。_饼干妹妹 提交于 2019-12-10 11:07:45

问题


I want to import some string from interface constant in android layout data binding.

Gradle build fails if i use this line

android:drawableRight="@{item.icon.equalsIgnoreCase(Constants.FOOD_TYPE_NON_VEG)? @drawable/ic_nonveg : @drawable/ic_veg}"

But below line works

android:drawableRight="@{item.icon.equalsIgnoreCase(`nonveg`)? @drawable/ic_nonveg : @drawable/ic_veg}"

Sample xml is

<?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>

and Constants interface is

public interface Constants {
    String FOOD_TYPE_NON_VEG  = "nonveg";
}

How to import string from interface in xml layout in databinding?


回答1:


Use import, not variable:

<data>
    <import type="yourfullpackagepath.Constants"/>
</data>


来源:https://stackoverflow.com/questions/50251383/how-to-import-public-static-field-from-class-in-android-data-binding

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!