首页 > 解决方案 > 数据绑定时导入和变量之间的区别?

问题描述

在查看有关和之间差异的数据绑定文档后,尚不清楚它们有何不同。以下是取自文档页面的示例。<import/><variable/>

<import type="com.example.real.estate.View" alias="Vista"/>

看起来相当于

<variable name="user" type="com.example.User"/>

除了 analias可以以大写字母开头,而name不能。它们甚至被类似地使用。

<data>
    <import type="com.example.MyStringUtils"/>
    <variable name="user" type="com.example.User"/>
</data>
…
<TextView
   android:text="@{MyStringUtils.capitalize(user.lastName)}"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"/>

从示例中我看到的唯一区别是您可以调用 animport的方法,但不能调用variable's。

标签: androidandroid-databinding

解决方案


variable如果您想将一些数据传递给视图,您可以使用。在您的示例中,您有 User 类型的用户变量,您可以使用它来设置用户名TextView。您可以调用变量方法 -user.lastName相当于user.getLastName()

只需import指定要使用的类,就不会传递任何数据。在您的示例中,导入的实用程序类仅用于大写用户名,该capitalize方法将其作为参数接收。


推荐阅读