# ArrayObjectAdapter

Artifact: [androidx.leanback:leanback](https://developer.android.com/jetpack/androidx/releases/leanback) [View Source](https://cs.android.com/search?q=file:androidx/leanback/widget/ArrayObjectAdapter.java+class:androidx.leanback.widget.ArrayObjectAdapter) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

*** ** * ** ***

<br />

```
class ArrayObjectAdapter : ObjectAdapter
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.leanback.widget.ObjectAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter) ||
|   | ↳ | [androidx.leanback.widget.ArrayObjectAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter) |

*** ** * ** ***

An `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter` implemented with an `https://developer.android.com/reference/java/util/ArrayList.html`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#ArrayObjectAdapter()()` Constructs an adapter. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#ArrayObjectAdapter(androidx.leanback.widget.Presenter)(presenter: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter)` Constructs an adapter that uses the given `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter` for all items. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#ArrayObjectAdapter(androidx.leanback.widget.PresenterSelector)(presenterSelector: https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSelector)` Constructs an adapter with the given `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSelector`. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#add(java.lang.Object)(item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)` Adds an item to the end of the adapter. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#add(int,java.lang.Object)(index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)` Inserts an item into this adapter at the specified index. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#addAll(int,java.util.Collection<?>)(index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, items: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-collection/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html<*>)` Adds the objects in the given collection to the adapter, starting at the given index. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#clear()()` Removes all items from this adapter, leaving it empty. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#get(int)(index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns the item for the given position. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#indexOf(java.lang.Object)(item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)` Returns the index for the first occurrence of item in the adapter, or -1 if not found. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#isImmediateNotifySupported()()` Returns true if the adapter pairs each underlying data change with a call to notify and false otherwise. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#move(int,int)(fromPosition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, toPosition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Moved the item at fromPosition to toPosition. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#notifyArrayItemRangeChanged(int,int)(positionStart: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, itemCount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Notify that the content of a range of items changed. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#remove(java.lang.Object)(item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)` Removes the first occurrence of the given item from the adapter. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#removeItems(int,int)(position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, count: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Removes a range of items from the adapter. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#replace(int,java.lang.Object)(position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)` Replaces item at position with a new item and calls notifyItemRangeChanged() at the given position. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#setItems(java.util.List,androidx.leanback.widget.DiffCallback)(itemList: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html, callback: https://developer.android.com/reference/kotlin/androidx/leanback/widget/DiffCallback?)` Set a new item list to adapter. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#size()()` Returns the number of items in the adapter. |
| `(https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<E!>` | `<E> https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#unmodifiableList()()` Gets a read-only view of the list of object of this ArrayObjectAdapter. |

### Inherited Constants

From [androidx.leanback.widget.ObjectAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter) `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#NO_ID() = -1`

Indicates that an id has not been set.

### Inherited functions

From [androidx.leanback.widget.ObjectAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#getId(int)(position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Returns the id for the given position.
`https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter?` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#getPresenter(java.lang.Object)(item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)`

Returns the `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter` for the given item from the adapter.
`https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSelector` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#getPresenterSelector()()`

Returns the presenter selector for this ObjectAdapter.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#hasStableIds()()`

Returns true if the item ids are stable across changes to the underlying data.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#notifyChanged()()`

Notifies UI that the underlying data has changed.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#notifyItemMoved(int,int)(fromPosition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, toPosition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Notifies UI that item at fromPosition has been moved to toPosition.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#notifyItemRangeChanged(int,int)(positionStart: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, itemCount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Notifies UI that some items has changed.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#notifyItemRangeChanged(int,int,java.lang.Object)(positionStart: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, itemCount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, payload: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)`

Notifies UI that some items has changed.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#notifyItemRangeInserted(int,int)(positionStart: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, itemCount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Notifies UI that new items has been inserted.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#notifyItemRangeRemoved(int,int)(positionStart: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, itemCount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Notifies UI that some items that has been removed.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#onHasStableIdsChanged()()`

Called when `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#setHasStableIds(boolean)` is called and the status of stable ids has changed.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#onPresenterSelectorChanged()()`

Called when `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#setPresenterSelector(androidx.leanback.widget.PresenterSelector)` is called and the PresenterSelector differs from the previous one.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#registerObserver(androidx.leanback.widget.ObjectAdapter.DataObserver)(observer: https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter.DataObserver)`

Registers a DataObserver for data change notifications.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#setHasStableIds(boolean)(hasStableIds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Sets whether the item ids are stable across changes to the underlying data.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#setPresenterSelector(androidx.leanback.widget.PresenterSelector)(presenterSelector: https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSelector)`

Sets the presenter selector.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#unregisterAllObservers()()`

Unregisters all DataObservers for this ObjectAdapter.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#unregisterObserver(androidx.leanback.widget.ObjectAdapter.DataObserver)(observer: https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter.DataObserver)`

Unregisters a DataObserver for data change notifications.

## Public constructors

### ArrayObjectAdapter

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
ArrayObjectAdapter()
```

Constructs an adapter.

### ArrayObjectAdapter

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
ArrayObjectAdapter(presenter: Presenter)
```

Constructs an adapter that uses the given `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter` for all items.

### ArrayObjectAdapter

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
ArrayObjectAdapter(presenterSelector: PresenterSelector)
```

Constructs an adapter with the given `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSelector`.

## Public functions

### add

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun add(item: Any): Unit
```

Adds an item to the end of the adapter.

| Parameters |
|---|---|
| `item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html` | The item to add to the end of the adapter. |

### add

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun add(index: Int, item: Any): Unit
```

Inserts an item into this adapter at the specified index. If the index is \>`https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#size()` an exception will be thrown.

| Parameters |
|---|---|
| `index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index at which the item should be inserted. |
| `item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html` | The item to insert into the adapter. |

### addAll

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.2.0)

```
fun addAll(index: Int, items: (Mutable)Collection<*>): Unit
```

Adds the objects in the given collection to the adapter, starting at the given index. If the index is \>= `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter#size()` an exception will be thrown.

| Parameters |
|---|---|
| `index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index at which the items should be inserted. |
| `items: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-collection/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html<*>` | A `https://developer.android.com/reference/java/util/Collection.html` of items to insert. |

### clear

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun clear(): Unit
```

Removes all items from this adapter, leaving it empty.

### get

```
fun get(index: Int): Any?
```

Returns the item for the given position.

### indexOf

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun indexOf(item: Any): Int
```

Returns the index for the first occurrence of item in the adapter, or -1 if not found.

| Parameters |
|---|---|
| `item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html` | The item to find in the list. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | Index of the first occurrence of the item in the adapter, or -1 if not found. |

### isImmediateNotifySupported

```
fun isImmediateNotifySupported(): Boolean
```

Returns true if the adapter pairs each underlying data change with a call to notify and false otherwise.

### move

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun move(fromPosition: Int, toPosition: Int): Unit
```

Moved the item at fromPosition to toPosition.

| Parameters |
|---|---|
| `fromPosition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | Previous position of the item. |
| `toPosition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | New position of the item. |

### notifyArrayItemRangeChanged

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun notifyArrayItemRangeChanged(positionStart: Int, itemCount: Int): Unit
```

Notify that the content of a range of items changed. Note that this is not same as items being added or removed.

| Parameters |
|---|---|
| `positionStart: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The position of first item that has changed. |
| `itemCount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The count of how many items have changed. |

### remove

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun remove(item: Any): Boolean
```

Removes the first occurrence of the given item from the adapter.

| Parameters |
|---|---|
| `item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html` | The item to remove from the adapter. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if the item was found and thus removed from the adapter. |

### removeItems

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun removeItems(position: Int, count: Int): Int
```

Removes a range of items from the adapter. The range is specified by giving the starting position and the number of elements to remove.

| Parameters |
|---|---|
| `position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of the first item to remove. |
| `count: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of items to remove. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of items removed. |

### replace

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun replace(position: Int, item: Any): Unit
```

Replaces item at position with a new item and calls notifyItemRangeChanged() at the given position. Note that this method does not compare new item to existing item.

| Parameters |
|---|---|
| `position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of item to replace. |
| `item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html` | The new item to be placed at given position. |

### setItems

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun setItems(itemList: (Mutable)List, callback: DiffCallback?): Unit
```

Set a new item list to adapter. The DiffUtil will compute the difference and dispatch it to specified position.

| Parameters |
|---|---|
| `itemList: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html` | List of new Items |
| `callback: https://developer.android.com/reference/kotlin/androidx/leanback/widget/DiffCallback?` | Optional DiffCallback Object to compute the difference between the old data set and new data set. When null, `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ObjectAdapter#notifyChanged()` will be fired. |

### size

```
fun size(): Int
```

Returns the number of items in the adapter.

### unmodifiableList

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
fun <E> unmodifiableList(): (Mutable)List<E!>
```

Gets a read-only view of the list of object of this ArrayObjectAdapter.