public abstract class ViewDataBinding
extends BaseObservable
java.lang.Object | ||
↳ | android.databinding.BaseObservable | |
↳ | android.databinding.ViewDataBinding |
生成的数据绑定类的基类。 如果可能的话,生成的绑定应该使用其生成的静态绑定或膨胀方法之一进行实例化。 如果特定的结合未知,则应使用bind(View)
或inflate(LayoutInflater, int, ViewGroup, boolean)
。
Public methods |
|
---|---|
void |
addOnRebindCallback(OnRebindCallback listener) 添加要在重新评估脏字段时调用的侦听器。 |
void |
executePendingBindings() 评估待定绑定,更新任何具有绑定到已修改变量的表达式的视图。 |
View |
getRoot() 返回与绑定关联的布局文件中最外层的视图。 |
abstract boolean |
hasPendingBindings() 返回是否需要刷新UI以表示当前数据。 |
abstract void |
invalidateAll() 使所有绑定表达式无效并请求新的重新绑定来刷新UI。 |
void |
removeOnRebindCallback(OnRebindCallback listener) 删除在 |
abstract boolean |
setVariable(int variableId, Object value) 在Binding类中设置一个值的值。 |
void |
unbind() 删除表达式变量的绑定侦听器。 |
Protected methods |
|
---|---|
void |
finalize() 当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 |
Inherited methods |
|
---|---|
From class android.databinding.BaseObservable
|
|
From class java.lang.Object
|
|
From interface android.databinding.Observable
|
void addOnRebindCallback (OnRebindCallback listener)
添加要在重新评估脏字段时调用的侦听器。 这也允许自动更新暂停,但不会停止对executePendingBindings()
显式调用。
Parameters | |
---|---|
listener |
OnRebindCallback : The listener to add. |
void executePendingBindings ()
评估待定绑定,更新任何具有绑定到已修改变量的表达式的视图。 这必须在UI线程上运行。
View getRoot ()
返回与绑定关联的布局文件中最外层的视图。 如果此绑定用于合并布局文件,则这将返回合并标记中的第一个根。
Returns | |
---|---|
View |
the outermost View in the layout file associated with the Binding. |
boolean hasPendingBindings ()
返回是否需要刷新UI以表示当前数据。
Returns | |
---|---|
boolean |
true if any field has changed and the binding should be evaluated. |
void invalidateAll ()
使所有绑定表达式无效并请求新的重新绑定来刷新UI。
void removeOnRebindCallback (OnRebindCallback listener)
删除在 addOnRebindCallback(OnRebindCallback)
中添加的侦听 addOnRebindCallback(OnRebindCallback)
。
Parameters | |
---|---|
listener |
OnRebindCallback : The listener to remove. |
boolean setVariable (int variableId, Object value)
在Binding类中设置一个值的值。
通常,开发人员将能够直接调用子类的set方法。 例如,如果绑定中存在变量x
,则会生成一个setX
方法。 但是,有时候ViewDataBinding的特定子类是未知的,所以生成的方法不能在没有反射的情况下被发现。 setVariable调用允许设置变量的值而不反映。
Parameters | |
---|---|
variableId |
int : the BR id of the variable to be set. For example, if the variable is x , then variableId will be BR.x . |
value |
Object : The new value of the variable to be set. |
Returns | |
---|---|
boolean |
true if the variable is declared or used in the binding or false otherwise. |
void unbind ()
删除表达式变量的绑定侦听器。
void finalize ()
当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类重写finalize
方法以处置系统资源或执行其他清理。
的常规协定finalize
是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 该finalize
方法可以采取任何行动,包括再制作该对象提供给其他线程; 然而, finalize
的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。
类Object
的finalize
方法Object
执行特殊操作; 它只是正常返回。 Object
子类可能会覆盖此定义。
Java编程语言不保证哪个线程将为任何给定对象调用finalize
方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。
在针对一个对象调用了 finalize
方法之后,在Java虚拟机再次确定没有任何方法可以通过尚未死亡的任何线程访问此对象之前,不会采取进一步的操作,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。
对于任何给定对象,Java虚拟机永远不会多次调用 finalize
方法。
finalize
方法抛出的任何异常 finalize
导致此对象的终止被暂停,但是会被忽略。
Throws | |
---|---|
Throwable |