Android Databinding: как получить значение поля перечислимого класса kotlin? - PullRequest
2 голосов
/ 03 июля 2019

У меня есть класс enum с двумя полями:

enum class MyEnum(val text1: String, val text2: String) {
    A("a1", "a2"),
    B("b1", "b2")
}

И я хочу использовать значения этого поля в XML с привязкой данных. Мой ViewModel предоставляет ObservableField<MyEnum>, который должен использоваться в XML через привязку данных:

class MyViewModel() : ViewModel() {
    val myEnum = ObservableField<MyEnum>(MyEnum.A)
}

Я пытаюсь прочитать значение поля в XML

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>

        <import type="com.example.MyEnum" />

        <variable
            name="vm"
            type="com.example.MyViewModel" />
    </data>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:text="@{vm.myEnum.text1}"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    </FrameLayout>
</layout>

но я получаю следующее исключение: Не удается найти установщик для атрибута 'text' со строкой параметра

...