【问题标题】:Identifiers must have user defined types from the XML file, databinding with observablefield标识符必须具有来自 XML 文件的用户定义类型,与 observablefield 的数据绑定
【发布时间】:2019-04-03 08:58:12
【问题描述】:

我希望我的视图可见性取决于条件行为,因此我正在使用 ObservableField 和数据绑定尝试更改视图可见性,但遇到诸如“标识符必须具有 XML 文件中的用户定义类型。InputType 缺少它”之类的问题

代码:

Kotlin File

var showView: ObservableField<Boolean>? = ObservableField(false)

//API call response
showView.set(true)


Layout File:

<TextView
 android:id="@+id/textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="@{viewModel.showView ? View.VISIBLE : View.GONE}"/>

如何使用布尔类型的 Observablefield 应用数据绑定?我也将它用于字符串文本,它可以工作但不能使用布尔条件语句。

【问题讨论】:

    标签: android android-databinding


    【解决方案1】:

    我不确定这里是否是这种情况,但是当您在绑定表达式中引用尚未在布局的&lt;data&gt; 部分中声明的类型时,通常会显示此错误消息。与将 View 类型声明为导入的方式相同,您应该声明类型 InputType

    <data>
        <!-- Maybe an import for InputType is missing here? -->
        <import type="android.view.View" />
        <variable
            name="viewModel"
            type="com.yourpackage.YourViewModel"/>
    </data>
    

    【讨论】:

    • 不,我已经在 部分中标记了 viewModel
    • 但是视图模型不是这里的问题。问题似乎是您的导入中缺少名为 InputType 的类型。你确定你已经声明了一个有效的导入吗?
    • 哦,是的,明白了。我忘了导入InputType,这么小的错误。谢谢你的回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2012-02-12
    • 2019-04-30
    相关资源
    最近更新 更多