# ViewDataBinding

Summary:[Methods](https://developer.android.com/reference/android/databinding/ViewDataBinding#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/databinding/ViewDataBinding#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/databinding/ViewDataBinding#)  

# ViewDataBinding

`
public


abstract
class
ViewDataBinding
`  
`


``

extends `[BaseObservable](https://developer.android.com/reference/android/databinding/BaseObservable)`


``


`

|---|---|-------------------------------------|
| [java.lang.Object](http://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [android.databinding.BaseObservable](https://developer.android.com/reference/android/databinding/BaseObservable) ||
|   | ↳ | android.databinding.ViewDataBinding |

<br />

*** ** * ** ***

Base class for generated data binding classes. If possible, the generated binding should be instantiated using one of its generated static bind or inflate methods. If the specific binding is unknown,[bind(View)](https://developer.android.com/reference/android/databinding/DataBindingUtil#bind(android.view.View))or[inflate(LayoutInflater, int, ViewGroup, boolean)](https://developer.android.com/reference/android/databinding/DataBindingUtil#inflate(android.view.LayoutInflater, int, android.view.ViewGroup, boolean))should be used.

## Summary

|                                                                                                                                                                                                                                                                                 ### Public methods                                                                                                                                                                                                                                                                                  ||
|--------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` void`                                                                  | ` `[addOnRebindCallback](https://developer.android.com/reference/android/databinding/ViewDataBinding#addOnRebindCallback(android.databinding.OnRebindCallback))`(`[OnRebindCallback](https://developer.android.com/reference/android/databinding/OnRebindCallback)` listener) ` Add a listener to be called when reevaluating dirty fields.                                                                                                                                                               |
| ` void`                                                                  | ` `[executePendingBindings](https://developer.android.com/reference/android/databinding/ViewDataBinding#executePendingBindings())`() ` Evaluates the pending bindings, updating any Views that have expressions bound to modified variables.                                                                                                                                                                                                                                                              |
| ` `[View](http://developer.android.com/reference/android/view/View.html) | ` `[getRoot](https://developer.android.com/reference/android/databinding/ViewDataBinding#getRoot())`() ` Returns the outermost View in the layout file associated with the Binding.                                                                                                                                                                                                                                                                                                                       |
| ` abstract boolean`                                                      | ` `[hasPendingBindings](https://developer.android.com/reference/android/databinding/ViewDataBinding#hasPendingBindings())`() ` Returns whether the UI needs to be refresh to represent the current data.                                                                                                                                                                                                                                                                                                  |
| ` abstract void`                                                         | ` `[invalidateAll](https://developer.android.com/reference/android/databinding/ViewDataBinding#invalidateAll())`() ` Invalidates all binding expressions and requests a new rebind to refresh UI.                                                                                                                                                                                                                                                                                                         |
| ` void`                                                                  | ` `[removeOnRebindCallback](https://developer.android.com/reference/android/databinding/ViewDataBinding#removeOnRebindCallback(android.databinding.OnRebindCallback))`(`[OnRebindCallback](https://developer.android.com/reference/android/databinding/OnRebindCallback)` listener) ` Removes a listener that was added in[addOnRebindCallback(OnRebindCallback)](https://developer.android.com/reference/android/databinding/ViewDataBinding#addOnRebindCallback(android.databinding.OnRebindCallback)). |
| ` void`                                                                  | ` `[setLifecycleOwner](https://developer.android.com/reference/android/databinding/ViewDataBinding#setLifecycleOwner(android.arch.lifecycle.LifecycleOwner))`(LifecycleOwner lifecycleOwner) ` Sets the[LifecycleOwner](https://developer.android.com/reference/android/arch/lifecycle/LifecycleOwner)that should be used for observing changes of LiveData in this binding.                                                                                                                              |
| ` abstract boolean`                                                      | ` `[setVariable](https://developer.android.com/reference/android/databinding/ViewDataBinding#setVariable(int, java.lang.Object))`(int variableId, `[Object](http://developer.android.com/reference/java/lang/Object.html)` value) ` Set a value value in the Binding class.                                                                                                                                                                                                                               |
| ` void`                                                                  | ` `[unbind](https://developer.android.com/reference/android/databinding/ViewDataBinding#unbind())`() ` Removes binding listeners to expression variables.                                                                                                                                                                                                                                                                                                                                                 |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/databinding/ViewDataBinding#)From class` `[android.databinding.BaseObservable](https://developer.android.com/reference/android/databinding/BaseObservable)` ` |---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` void` | ` `[addOnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/BaseObservable#addOnPropertyChangedCallback(android.databinding.Observable.OnPropertyChangedCallback))`(`[Observable.OnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/Observable.OnPropertyChangedCallback)` callback) ` Adds a callback to listen for changes to the Observable.   | | ` void` | ` `[notifyChange](https://developer.android.com/reference/android/databinding/BaseObservable#notifyChange())`() ` Notifies listeners that all properties of this instance have changed.                                                                                                                                                                                                                                 | | ` void` | ` `[notifyPropertyChanged](https://developer.android.com/reference/android/databinding/BaseObservable#notifyPropertyChanged(int))`(int fieldId) ` Notifies listeners that a specific property has changed.                                                                                                                                                                                                              | | ` void` | ` `[removeOnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/BaseObservable#removeOnPropertyChangedCallback(android.databinding.Observable.OnPropertyChangedCallback))`(`[Observable.OnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/Observable.OnPropertyChangedCallback)` callback) ` Removes a callback from those listening for changes. | ||
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/databinding/ViewDataBinding#)From class` `[java.lang.Object](http://developer.android.com/reference/java/lang/Object.html)` ` |------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------| | ` `[Object](http://developer.android.com/reference/java/lang/Object.html)          | ` clone() `                                                                               | | ` boolean`                                                                         | ` equals(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) ` | | ` void`                                                                            | ` finalize() `                                                                            | | ` final `[Class](http://developer.android.com/reference/java/lang/Class.html)`<?>` | ` getClass() `                                                                            | | ` int`                                                                             | ` hashCode() `                                                                            | | ` final void`                                                                      | ` notify() `                                                                              | | ` final void`                                                                      | ` notifyAll() `                                                                           | | ` `[String](http://developer.android.com/reference/java/lang/String.html)          | ` toString() `                                                                            | | ` final void`                                                                      | ` wait(long arg0, int arg1) `                                                             | | ` final void`                                                                      | ` wait(long arg0) `                                                                       | | ` final void`                                                                      | ` wait() `                                                                                | ||
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/databinding/ViewDataBinding#)From interface` `[android.databinding.Observable](https://developer.android.com/reference/android/databinding/Observable)` ` |------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` abstract void` | ` `[addOnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/Observable#addOnPropertyChangedCallback(android.databinding.Observable.OnPropertyChangedCallback))`(`[Observable.OnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/Observable.OnPropertyChangedCallback)` callback) ` Adds a callback to listen for changes to the Observable.   | | ` abstract void` | ` `[removeOnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/Observable#removeOnPropertyChangedCallback(android.databinding.Observable.OnPropertyChangedCallback))`(`[Observable.OnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/Observable.OnPropertyChangedCallback)` callback) ` Removes a callback from those listening for changes. | ||

## Public methods

### addOnRebindCallback

```
void addOnRebindCallback (OnRebindCallback listener)
```

Add a listener to be called when reevaluating dirty fields. This also allows automatic updates to be halted, but does not stop explicit calls to[executePendingBindings()](https://developer.android.com/reference/android/databinding/ViewDataBinding#executePendingBindings()).

<br />

|                         Parameters                          ||
|------------|-------------------------------------------------|
| `listener` | `OnRebindCallback`: The listener to add. <br /> |

### executePendingBindings

```
void executePendingBindings ()
```

Evaluates the pending bindings, updating any Views that have expressions bound to modified variables. This**must**be run on the UI thread.

<br />

### getRoot

```
View getRoot ()
```

Returns the outermost View in the layout file associated with the Binding. If this binding is for a merge layout file, this will return the first root in the merge tag.

<br />

|                                                                     Returns                                                                      ||
|-----------------------------------------------------------------------|---------------------------------------------------------------------------|
| [View](http://developer.android.com/reference/android/view/View.html) | the outermost View in the layout file associated with the Binding. <br /> |

### hasPendingBindings

```
boolean hasPendingBindings ()
```

Returns whether the UI needs to be refresh to represent the current data.

<br />

|                                       Returns                                        ||
|-----------|---------------------------------------------------------------------------|
| `boolean` | true if any field has changed and the binding should be evaluated. <br /> |

### invalidateAll

```
void invalidateAll ()
```

Invalidates all binding expressions and requests a new rebind to refresh UI.

<br />

### removeOnRebindCallback

```
void removeOnRebindCallback (OnRebindCallback listener)
```

Removes a listener that was added in[addOnRebindCallback(OnRebindCallback)](https://developer.android.com/reference/android/databinding/ViewDataBinding#addOnRebindCallback(android.databinding.OnRebindCallback)).

<br />

|                           Parameters                           ||
|------------|----------------------------------------------------|
| `listener` | `OnRebindCallback`: The listener to remove. <br /> |

### setLifecycleOwner

```
void setLifecycleOwner (LifecycleOwner lifecycleOwner)
```

Sets the[LifecycleOwner](https://developer.android.com/reference/android/arch/lifecycle/LifecycleOwner)that should be used for observing changes of LiveData in this binding. If a[LiveData](https://developer.android.com/reference/android/arch/lifecycle/LiveData)is in one of the binding expressions and no LifecycleOwner is set, the LiveData will not be observed and updates to it will not be propagated to the UI.

<br />

|                                                              Parameters                                                              ||
|------------------|--------------------------------------------------------------------------------------------------------------------|
| `lifecycleOwner` | `LifecycleOwner`: The LifecycleOwner that should be used for observing changes of LiveData in this binding. <br /> |

### setVariable

```
boolean setVariable (int variableId, 
                Object value)
```

Set a value value in the Binding class.

Typically, the developer will be able to call the subclass's set method directly. For example, if there is a variable`x`in the Binding, a`setX`method will be generated. However, there are times when the specific subclass of ViewDataBinding is unknown, so the generated method cannot be discovered without reflection. The setVariable call allows the values of variables to be set without reflection.

<br />

|                                                             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`. <br /> |
| `value`      | `Object`: The new value of the variable to be set. <br />                                                             |

|                                            Returns                                             ||
|-----------|-------------------------------------------------------------------------------------|
| `boolean` | `true`if the variable is declared or used in the binding or`false`otherwise. <br /> |

### unbind

```
void unbind ()
```

Removes binding listeners to expression variables.

<br />

-

  ## Annotations

  - [Bindable](https://developer.android.com/reference/android/databinding/Bindable)
  - [BindingAdapter](https://developer.android.com/reference/android/databinding/BindingAdapter)
  - [BindingConversion](https://developer.android.com/reference/android/databinding/BindingConversion)
  - [BindingMethod](https://developer.android.com/reference/android/databinding/BindingMethod)
  - [BindingMethods](https://developer.android.com/reference/android/databinding/BindingMethods)
  - [InverseBindingAdapter](https://developer.android.com/reference/android/databinding/InverseBindingAdapter)
  - [InverseBindingMethod](https://developer.android.com/reference/android/databinding/InverseBindingMethod)
  - [InverseBindingMethods](https://developer.android.com/reference/android/databinding/InverseBindingMethods)
  - [InverseMethod](https://developer.android.com/reference/android/databinding/InverseMethod)
-

  ## Interfaces

  - [DataBindingComponent](https://developer.android.com/reference/android/databinding/DataBindingComponent)
  - [InverseBindingListener](https://developer.android.com/reference/android/databinding/InverseBindingListener)
  - [Observable](https://developer.android.com/reference/android/databinding/Observable)
  - [ObservableList](https://developer.android.com/reference/android/databinding/ObservableList)
  - [ObservableMap](https://developer.android.com/reference/android/databinding/ObservableMap)
-

  ## Classes

  - [BaseObservable](https://developer.android.com/reference/android/databinding/BaseObservable)
  - [CallbackRegistry](https://developer.android.com/reference/android/databinding/CallbackRegistry)
  - [CallbackRegistry.NotifierCallback](https://developer.android.com/reference/android/databinding/CallbackRegistry.NotifierCallback)
  - [DataBindingUtil](https://developer.android.com/reference/android/databinding/DataBindingUtil)
  - [ListChangeRegistry](https://developer.android.com/reference/android/databinding/ListChangeRegistry)
  - [MapChangeRegistry](https://developer.android.com/reference/android/databinding/MapChangeRegistry)
  - [MergedDataBinderMapper](https://developer.android.com/reference/android/databinding/MergedDataBinderMapper)
  - [Observable.OnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/Observable.OnPropertyChangedCallback)
  - [ObservableArrayList](https://developer.android.com/reference/android/databinding/ObservableArrayList)
  - [ObservableArrayMap](https://developer.android.com/reference/android/databinding/ObservableArrayMap)
  - [ObservableBoolean](https://developer.android.com/reference/android/databinding/ObservableBoolean)
  - [ObservableByte](https://developer.android.com/reference/android/databinding/ObservableByte)
  - [ObservableChar](https://developer.android.com/reference/android/databinding/ObservableChar)
  - [ObservableDouble](https://developer.android.com/reference/android/databinding/ObservableDouble)
  - [ObservableField](https://developer.android.com/reference/android/databinding/ObservableField)
  - [ObservableFloat](https://developer.android.com/reference/android/databinding/ObservableFloat)
  - [ObservableInt](https://developer.android.com/reference/android/databinding/ObservableInt)
  - [ObservableList.OnListChangedCallback](https://developer.android.com/reference/android/databinding/ObservableList.OnListChangedCallback)
  - [ObservableLong](https://developer.android.com/reference/android/databinding/ObservableLong)
  - [ObservableMap.OnMapChangedCallback](https://developer.android.com/reference/android/databinding/ObservableMap.OnMapChangedCallback)
  - [ObservableParcelable](https://developer.android.com/reference/android/databinding/ObservableParcelable)
  - [ObservableShort](https://developer.android.com/reference/android/databinding/ObservableShort)
  - [OnRebindCallback](https://developer.android.com/reference/android/databinding/OnRebindCallback)
  - [PropertyChangeRegistry](https://developer.android.com/reference/android/databinding/PropertyChangeRegistry)
  - [ViewDataBinding](https://developer.android.com/reference/android/databinding/ViewDataBinding)
  - [ViewStubProxy](https://developer.android.com/reference/android/databinding/ViewStubProxy)