Как использовать kotlin.Сопряжение с привязкой к данным?

#android #kotlin #android-databinding

#Android #kotlin #android-привязка к данным

Вопрос:

Он работает нормально, пока я использую модель данных с двумя полями.

Но когда я пытаюсь использовать kotlin. Пара не может быть собрана и выдает nit информативную ошибку :

 ....DataBinderMapperImpl.java:20: error: cannot find symbol
import .....databinding.ItemCurrencyBindingImpl;


  symbol:   class ItemCurrencyBindingImpl

  location: package ......databinding
  

XML-код :

     <variable
        name="currency"
        type="kotlin.Pair"/>
</data>

<TextView
    android:layout_width="@dimen/currency_dropdown_width"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:gravity="center|start"
    android:padding="@dimen/currency_dropdown_padding"
    android:text="@{currency.first}"
    app:drawableEnd="@{currency.second}"
    app:drawableSize="@{@dimen/currency_dropdown_image_size}"
    tools:text="@string/pound"/></layout>
  

Ответ №1:

Вам нужно добавить импорт пары типов в ваш раздел данных, а также объявить тип элементов пары.

Если вы currency введете is Pair<String, Int> , вы можете объявить это следующим образом:

 <import type="kotlin.Pair"/>
<variable name="currency" type="Pairamp;<String, Intamp;>"/>
  

Комментарии:

1. Может использоваться без импорта типа — <variable name="currency" type="kotlin.Pairamp;<String, Integeramp;>" /> также должно быть Integer, а не Int