# Observable

Summary:[Nested Classes](https://developer.android.com/reference/android/databinding/Observable#nestedclasses)\|[Methods](https://developer.android.com/reference/android/databinding/Observable#pubmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/databinding/Observable#)  

# Observable

`
public


interface
Observable
`  
`


`

|--------------------------------|
| android.databinding.Observable |

|---|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/databinding/Observable#)Known Indirect Subclasses [BaseObservable](https://developer.android.com/reference/android/databinding/BaseObservable),[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)\<T\>,[ObservableFloat](https://developer.android.com/reference/android/databinding/ObservableFloat),[ObservableInt](https://developer.android.com/reference/android/databinding/ObservableInt),[ObservableLong](https://developer.android.com/reference/android/databinding/ObservableLong),[ObservableParcelable](https://developer.android.com/reference/android/databinding/ObservableParcelable)\<T extends[Parcelable](http://developer.android.com/reference/android/os/Parcelable.html)\>,[ObservableShort](https://developer.android.com/reference/android/databinding/ObservableShort),[ViewDataBinding](https://developer.android.com/reference/android/databinding/ViewDataBinding) |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [BaseObservable](https://developer.android.com/reference/android/databinding/BaseObservable)                                                                                                         | A convenience class that implements[Observable](https://developer.android.com/reference/android/databinding/Observable)interface and provides[notifyPropertyChanged(int)](https://developer.android.com/reference/android/databinding/BaseObservable#notifyPropertyChanged(int))and[notifyChange()](https://developer.android.com/reference/android/databinding/BaseObservable#notifyChange())methods. | | [ObservableBoolean](https://developer.android.com/reference/android/databinding/ObservableBoolean)                                                                                                   | An observable class that holds a primitive boolean.                                                                                                                                                                                                                                                                                                                                                    | | [ObservableByte](https://developer.android.com/reference/android/databinding/ObservableByte)                                                                                                         | An observable class that holds a primitive byte.                                                                                                                                                                                                                                                                                                                                                       | | [ObservableChar](https://developer.android.com/reference/android/databinding/ObservableChar)                                                                                                         | An observable class that holds a primitive char.                                                                                                                                                                                                                                                                                                                                                       | | [ObservableDouble](https://developer.android.com/reference/android/databinding/ObservableDouble)                                                                                                     | An observable class that holds a primitive double.                                                                                                                                                                                                                                                                                                                                                     | | [ObservableField](https://developer.android.com/reference/android/databinding/ObservableField)\<T\>                                                                                                  | An object wrapper to make it observable.                                                                                                                                                                                                                                                                                                                                                               | | [ObservableFloat](https://developer.android.com/reference/android/databinding/ObservableFloat)                                                                                                       | An observable class that holds a primitive float.                                                                                                                                                                                                                                                                                                                                                      | | [ObservableInt](https://developer.android.com/reference/android/databinding/ObservableInt)                                                                                                           | An observable class that holds a primitive int.                                                                                                                                                                                                                                                                                                                                                        | | [ObservableLong](https://developer.android.com/reference/android/databinding/ObservableLong)                                                                                                         | An observable class that holds a primitive long.                                                                                                                                                                                                                                                                                                                                                       | | [ObservableParcelable](https://developer.android.com/reference/android/databinding/ObservableParcelable)\<T extends[Parcelable](http://developer.android.com/reference/android/os/Parcelable.html)\> | An observable class that holds a parcelable object.                                                                                                                                                                                                                                                                                                                                                    | | [ObservableShort](https://developer.android.com/reference/android/databinding/ObservableShort)                                                                                                       | An observable class that holds a primitive short.                                                                                                                                                                                                                                                                                                                                                      | | [ViewDataBinding](https://developer.android.com/reference/android/databinding/ViewDataBinding)                                                                                                       | Base class for generated data binding classes.                                                                                                                                                                                                                                                                                                                                                         | ||

<br />

*** ** * ** ***

Observable classes provide a way in which data bound UI can be notified of changes.[ObservableList](https://developer.android.com/reference/android/databinding/ObservableList)and[ObservableMap](https://developer.android.com/reference/android/databinding/ObservableMap)also provide the ability to notify when changes occur. ObservableField, ObservableParcelable, ObservableBoolean, ObservableByte, ObservableShort, ObservableInt, ObservableLong, ObservableFloat, and ObservableDouble provide a means by which properties may be notified without implementing Observable.

An Observable object should notify the[Observable.OnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/Observable.OnPropertyChangedCallback)whenever an observed property of the class changes.

The getter for an observable property should be annotated with[Bindable](https://developer.android.com/reference/android/databinding/Bindable).

Convenience class BaseObservable implements this interface and PropertyChangeRegistry can help classes that don't extend BaseObservable to implement the listener registry.

## Summary

|                                                                                                          ### Nested classes                                                                                                           ||
|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` class` | [Observable.OnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/Observable.OnPropertyChangedCallback) The callback that is called by Observable when an observable property has changed. |

|                                                                                                                                                                                                          ### Public methods                                                                                                                                                                                                           ||
|------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` 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

### addOnPropertyChangedCallback

```
void addOnPropertyChangedCallback (Observable.OnPropertyChangedCallback callback)
```

Adds a callback to listen for changes to the Observable.

<br />

|                                         Parameters                                          ||
|------------|---------------------------------------------------------------------------------|
| `callback` | `Observable.OnPropertyChangedCallback`: The callback to start listening. <br /> |

### removeOnPropertyChangedCallback

```
void removeOnPropertyChangedCallback (Observable.OnPropertyChangedCallback callback)
```

Removes a callback from those listening for changes.

<br />

|                                             Parameters                                              ||
|------------|-----------------------------------------------------------------------------------------|
| `callback` | `Observable.OnPropertyChangedCallback`: The callback that should stop listening. <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)