Как импортировать публичное статическое поле из класса в привязке данных Android - PullRequest
0 голосов
/ 09 мая 2018

Я хочу импортировать некоторую строку из константы интерфейса в привязке данных макета Android.

Сборка 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>

и интерфейс Константы

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

Как импортировать строку из интерфейса в формате XML в привязке данных?

1 Ответ

0 голосов
/ 09 мая 2018

Используйте import, а не variable:

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