# ObservableList

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

# ObservableList

`
public


interface
ObservableList
`  
`


implements

`[List](http://developer.android.com/reference/java/util/List.html)`<T>


`

|-----------------------------------------|
| android.databinding.ObservableList\<T\> |

|---|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/databinding/ObservableList#)Known Indirect Subclasses [ObservableArrayList](https://developer.android.com/reference/android/databinding/ObservableArrayList)\<T\> |-------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------| | [ObservableArrayList](https://developer.android.com/reference/android/databinding/ObservableArrayList)\<T\> | An[ObservableList](https://developer.android.com/reference/android/databinding/ObservableList)implementation using ArrayList as an implementation. | ||

<br />

*** ** * ** ***

A[List](http://developer.android.com/reference/java/util/List.html)that notifies when changes are made. An ObservableList bound to the UI will keep the it up-to-date when changes occur.

The ObservableList must notify its callbacks whenever a change to the list occurs, using[ObservableList.OnListChangedCallback](https://developer.android.com/reference/android/databinding/ObservableList.OnListChangedCallback).

ObservableArrayList implements ObservableList with an underlying ArrayList. ListChangeRegistry can help in maintaining the callbacks of other implementations.  
**See also:**

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

## Summary

|                                                                                                                                                           ### Nested classes                                                                                                                                                            ||
|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` class` | [ObservableList.OnListChangedCallback](https://developer.android.com/reference/android/databinding/ObservableList.OnListChangedCallback)`<T extends `[ObservableList](https://developer.android.com/reference/android/databinding/ObservableList)`>` The callback that is called by ObservableList when the list has changed. |

|                                                                                                                                                                                                                                                                                  ### Public methods                                                                                                                                                                                                                                                                                  ||
|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract void` | ` `[addOnListChangedCallback](https://developer.android.com/reference/android/databinding/ObservableList#addOnListChangedCallback(android.databinding.ObservableList.OnListChangedCallback<? extends android.databinding.ObservableList<T>>))`(`[OnListChangedCallback](https://developer.android.com/reference/android/databinding/ObservableList.OnListChangedCallback)`<? extends `[ObservableList](https://developer.android.com/reference/android/databinding/ObservableList)`<T>> callback) ` Adds a callback to be notified when changes to the list occur. |
| ` abstract void` | ` `[removeOnListChangedCallback](https://developer.android.com/reference/android/databinding/ObservableList#removeOnListChangedCallback(android.databinding.ObservableList.OnListChangedCallback<? extends android.databinding.ObservableList<T>>))`(`[OnListChangedCallback](https://developer.android.com/reference/android/databinding/ObservableList.OnListChangedCallback)`<? extends `[ObservableList](https://developer.android.com/reference/android/databinding/ObservableList)`<T>> callback) ` Removes a callback previously added.                     |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/databinding/ObservableList#)From interface` `[java.util.List](http://developer.android.com/reference/java/util/List.html)` ` |-----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| | ` abstract boolean`                                                                                 | ` add(T arg0) `                                                                                                          | | ` abstract void`                                                                                    | ` add(int arg0, T arg1) `                                                                                                | | ` abstract boolean`                                                                                 | ` addAll(`[Collection](http://developer.android.com/reference/java/util/Collection.html)`<? extends E> arg0) `           | | ` abstract boolean`                                                                                 | ` addAll(int arg0, `[Collection](http://developer.android.com/reference/java/util/Collection.html)`<? extends E> arg1) ` | | ` abstract void`                                                                                    | ` clear() `                                                                                                              | | ` abstract boolean`                                                                                 | ` contains(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                              | | ` abstract boolean`                                                                                 | ` containsAll(`[Collection](http://developer.android.com/reference/java/util/Collection.html)`<?> arg0) `                | | ` abstract boolean`                                                                                 | ` equals(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                                | | ` abstract T`                                                                                       | ` get(int arg0) `                                                                                                        | | ` abstract int`                                                                                     | ` hashCode() `                                                                                                           | | ` abstract int`                                                                                     | ` indexOf(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                               | | ` abstract boolean`                                                                                 | ` isEmpty() `                                                                                                            | | ` abstract `[Iterator](http://developer.android.com/reference/java/util/Iterator.html)`<T>`         | ` iterator() `                                                                                                           | | ` abstract int`                                                                                     | ` lastIndexOf(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                           | | ` abstract `[ListIterator](http://developer.android.com/reference/java/util/ListIterator.html)`<T>` | ` listIterator(int arg0) `                                                                                               | | ` abstract `[ListIterator](http://developer.android.com/reference/java/util/ListIterator.html)`<T>` | ` listIterator() `                                                                                                       | | ` abstract T`                                                                                       | ` remove(int arg0) `                                                                                                     | | ` abstract boolean`                                                                                 | ` remove(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                                | | ` abstract boolean`                                                                                 | ` removeAll(`[Collection](http://developer.android.com/reference/java/util/Collection.html)`<?> arg0) `                  | | ` default void`                                                                                     | ` replaceAll(`[UnaryOperator](http://developer.android.com/reference/java/util/function/UnaryOperator.html)`<T> arg0) `  | | ` abstract boolean`                                                                                 | ` retainAll(`[Collection](http://developer.android.com/reference/java/util/Collection.html)`<?> arg0) `                  | | ` abstract T`                                                                                       | ` set(int arg0, T arg1) `                                                                                                | | ` abstract int`                                                                                     | ` size() `                                                                                                               | | ` default void`                                                                                     | ` sort(`[Comparator](http://developer.android.com/reference/java/util/Comparator.html)`<? super E> arg0) `               | | ` default `[Spliterator](http://developer.android.com/reference/java/util/Spliterator.html)`<T>`    | ` spliterator() `                                                                                                        | | ` abstract `[List](http://developer.android.com/reference/java/util/List.html)`<T>`                 | ` subList(int arg0, int arg1) `                                                                                          | | ` abstract `[Object[]](http://developer.android.com/reference/java/lang/Object.html)                | ` toArray() `                                                                                                            | | ` abstract <T> T[]`                                                                                 | ` toArray(T[] arg0) `                                                                                                    | ||
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/databinding/ObservableList#)From interface` `[java.util.Collection](http://developer.android.com/reference/java/util/Collection.html)` ` |--------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------| | ` abstract boolean`                                                                              | ` add(T arg0) `                                                                                                       | | ` abstract boolean`                                                                              | ` addAll(`[Collection](http://developer.android.com/reference/java/util/Collection.html)`<? extends E> arg0) `        | | ` abstract void`                                                                                 | ` clear() `                                                                                                           | | ` abstract boolean`                                                                              | ` contains(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                           | | ` abstract boolean`                                                                              | ` containsAll(`[Collection](http://developer.android.com/reference/java/util/Collection.html)`<?> arg0) `             | | ` abstract boolean`                                                                              | ` equals(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                             | | ` abstract int`                                                                                  | ` hashCode() `                                                                                                        | | ` abstract boolean`                                                                              | ` isEmpty() `                                                                                                         | | ` abstract `[Iterator](http://developer.android.com/reference/java/util/Iterator.html)`<T>`      | ` iterator() `                                                                                                        | | ` default `[Stream](http://developer.android.com/reference/java/util/stream/Stream.html)`<T>`    | ` parallelStream() `                                                                                                  | | ` abstract boolean`                                                                              | ` remove(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                             | | ` abstract boolean`                                                                              | ` removeAll(`[Collection](http://developer.android.com/reference/java/util/Collection.html)`<?> arg0) `               | | ` default boolean`                                                                               | ` removeIf(`[Predicate](http://developer.android.com/reference/java/util/function/Predicate.html)`<? super E> arg0) ` | | ` abstract boolean`                                                                              | ` retainAll(`[Collection](http://developer.android.com/reference/java/util/Collection.html)`<?> arg0) `               | | ` abstract int`                                                                                  | ` size() `                                                                                                            | | ` default `[Spliterator](http://developer.android.com/reference/java/util/Spliterator.html)`<T>` | ` spliterator() `                                                                                                     | | ` default `[Stream](http://developer.android.com/reference/java/util/stream/Stream.html)`<T>`    | ` stream() `                                                                                                          | | ` abstract <T> T[]`                                                                              | ` toArray(T[] arg0) `                                                                                                 | | ` abstract `[Object[]](http://developer.android.com/reference/java/lang/Object.html)             | ` toArray() `                                                                                                         | ||
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/databinding/ObservableList#)From interface` `[java.lang.Iterable](http://developer.android.com/reference/java/lang/Iterable.html)` ` |--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| | ` default void`                                                                                  | ` forEach(`[Consumer](http://developer.android.com/reference/java/util/function/Consumer.html)`<? super T> arg0) ` | | ` abstract `[Iterator](http://developer.android.com/reference/java/util/Iterator.html)`<T>`      | ` iterator() `                                                                                                     | | ` default `[Spliterator](http://developer.android.com/reference/java/util/Spliterator.html)`<T>` | ` spliterator() `                                                                                                  | ||

## Public methods

### addOnListChangedCallback

```
void addOnListChangedCallback (OnListChangedCallback<? extends ObservableList<T>> callback)
```

Adds a callback to be notified when changes to the list occur.

<br />

|                                       Parameters                                        ||
|------------|-----------------------------------------------------------------------------|
| `callback` | `OnListChangedCallback`: The callback to be notified on list changes <br /> |

### removeOnListChangedCallback

```
void removeOnListChangedCallback (OnListChangedCallback<? extends ObservableList<T>> callback)
```

Removes a callback previously added.

<br />

|                             Parameters                              ||
|------------|---------------------------------------------------------|
| `callback` | `OnListChangedCallback`: The callback to remove. <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)