Android懒惰数据绑定可能吗?

时间:2016-03-05 03:48:13

标签: android lazy-initialization android-databinding

Android数据绑定支持最酷的功能之一是它还为View设置了ID字段。这样可以整理代码库,因为不需要字段或findViewById()调用。

但问题是绑定实例只能通过调用绑定的bind()调用来检索。 <= 1}}通常异步接收数据时这很糟糕。

是否可以检索带有View字段的绑定实例减去实际的数据绑定过程?

栈跟踪:

NullPointerException

2 个答案:

答案 0 :(得分:3)

这似乎没有意义,数据绑定将忽略空变量,因此不应抛出空指针,也就是说,我相信,它是其最受推崇的功能之一。如果您需要在异步调用等之后修改变量,则可以使用dataBinding.executePendingBindings()

来自the docs

  

生成的绑定类将为每个描述的变量设置setter和getter。变量将采用默认的Java值,直到调用setter - 引用类型为null,int为0,boolean为false等。

  

生成的数据绑定代码会自动检查空值并避免空指针异常。例如,在表达式@ {user.name}中,如果user为null,则将为user.name分配其默认值(null)。如果您引用的是user.age,其中age是一个int,那么它将默认为0。

答案 1 :(得分:0)

使用java.lang.Boolean遇到了相同的问题。通过使用原始的boolean类型来解决。

<variable
    name="var"
    type="boolean" />