# SparseArrayObjectAdapter

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

*** ** * ** ***


```
public class SparseArrayObjectAdapter extends ObjectAdapter
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.leanback.widget.ObjectAdapter](https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter) ||
|   | ↳ | [androidx.leanback.widget.SparseArrayObjectAdapter](https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter) |

*** ** * ** ***

An `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter` implemented with a `https://developer.android.com/reference/android/util/SparseArray.html`. This class maintains an array of objects where each object is associated with an integer key which determines its order relative to other objects.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#SparseArrayObjectAdapter()()` Constructs an adapter. |
| `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#SparseArrayObjectAdapter(androidx.leanback.widget.Presenter)(https://developer.android.com/reference/androidx/leanback/widget/Presenter presenter)` Constructs an adapter with the given `https://developer.android.com/reference/androidx/leanback/widget/Presenter`. |
| `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#SparseArrayObjectAdapter(androidx.leanback.widget.PresenterSelector)(https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector presenterSelector)` Constructs an adapter with the given `https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector`. |

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#clear()()` Removes all items from this adapter, leaving it empty. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#clear(int)(int key)` Clears the given key and associated item from the adapter. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html` | `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#get(int)(int position)` Returns the item for the given position. |
| `int` | `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#indexOf(java.lang.Object)(https://developer.android.com/reference/java/lang/Object.html item)` Returns the index for the given item in the adapter. |
| `int` | `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#indexOf(int)(int key)` Returns the index for the given key in the adapter. |
| `boolean` | `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#isImmediateNotifySupported()()` Returns true if the adapter pairs each underlying data change with a call to notify and false otherwise. |
| `https://developer.android.com/reference/java/lang/Object.html` | `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#lookup(int)(int key)` Returns the object for the given key, or null if no mapping for that key exists. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#notifyArrayItemRangeChanged(int,int)(int positionStart, int itemCount)` Notify that the content of a range of items changed. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#set(int,java.lang.Object)(int key, https://developer.android.com/reference/java/lang/Object.html item)` Sets the item for the given key. |
| `int` | `https://developer.android.com/reference/androidx/leanback/widget/SparseArrayObjectAdapter#size()()` Returns the number of items in the adapter. |

| ### Inherited Constants |
|---|
| From [androidx.leanback.widget.ObjectAdapter](https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter) |---|---| | `static final int` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#NO_ID() = -1` Indicates that an id has not been set. | |

| ### Inherited methods |
|---|
| From [androidx.leanback.widget.ObjectAdapter](https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter) |---|---| | `long` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#getId(int)(int position)` Returns the id for the given position. | | `final @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/widget/Presenter` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#getPresenter(java.lang.Object)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/Object.html item)` Returns the `https://developer.android.com/reference/androidx/leanback/widget/Presenter` for the given item from the adapter. | | `final @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#getPresenterSelector()()` Returns the presenter selector for this ObjectAdapter. | | `final boolean` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#hasStableIds()()` Returns true if the item ids are stable across changes to the underlying data. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#notifyChanged()()` Notifies UI that the underlying data has changed. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#notifyItemMoved(int,int)(int fromPosition, int toPosition)` Notifies UI that item at fromPosition has been moved to toPosition. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#notifyItemRangeChanged(int,int)(int positionStart, int itemCount)` Notifies UI that some items has changed. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#notifyItemRangeChanged(int,int,java.lang.Object)( int positionStart, int itemCount, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html payload )` Notifies UI that some items has changed. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#notifyItemRangeInserted(int,int)(int positionStart, int itemCount)` Notifies UI that new items has been inserted. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#notifyItemRangeRemoved(int,int)(int positionStart, int itemCount)` Notifies UI that some items that has been removed. | | `void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#onHasStableIdsChanged()()` Called when `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#setHasStableIds(boolean)` is called and the status of stable ids has changed. | | `void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#onPresenterSelectorChanged()()` Called when `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#setPresenterSelector(androidx.leanback.widget.PresenterSelector)` is called and the PresenterSelector differs from the previous one. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#registerObserver(androidx.leanback.widget.ObjectAdapter.DataObserver)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter.DataObserver observer)` Registers a DataObserver for data change notifications. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#setHasStableIds(boolean)(boolean hasStableIds)` Sets whether the item ids are stable across changes to the underlying data. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#setPresenterSelector(androidx.leanback.widget.PresenterSelector)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector presenterSelector)` Sets the presenter selector. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#unregisterAllObservers()()` Unregisters all DataObservers for this ObjectAdapter. | | `final void` | `https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter#unregisterObserver(androidx.leanback.widget.ObjectAdapter.DataObserver)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/ObjectAdapter.DataObserver observer)` Unregisters a DataObserver for data change notifications. | |

## Public constructors

### SparseArrayObjectAdapter

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

```
public SparseArrayObjectAdapter()
```

Constructs an adapter.

### SparseArrayObjectAdapter

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

```
public SparseArrayObjectAdapter(Presenter presenter)
```

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

### SparseArrayObjectAdapter

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

```
public SparseArrayObjectAdapter(PresenterSelector presenterSelector)
```

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

## Public methods

### clear

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

```
public void clear()
```

Removes all items from this adapter, leaving it empty.

### clear

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

```
public void clear(int key)
```

Clears the given key and associated item from the adapter.

| Parameters |
|---|---|
| `int key` | The key to be cleared. |

### get

```
public @Nullable Object get(int position)
```

Returns the item for the given position.

### indexOf

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

```
public int indexOf(Object item)
```

Returns the index for the given item in the adapter.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/Object.html item` | The item to find in the array. |

| Returns |
|---|---|
| `int` | Index of the item, or a negative value if not found. |

### indexOf

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

```
public int indexOf(int key)
```

Returns the index for the given key in the adapter.

| Parameters |
|---|---|
| `int key` | The key to find in the array. |

| Returns |
|---|---|
| `int` | Index of the item, or a negative value if not found. |

### isImmediateNotifySupported

```
public boolean isImmediateNotifySupported()
```

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

### lookup

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

```
public Object lookup(int key)
```

Returns the object for the given key, or null if no mapping for that key exists.

### notifyArrayItemRangeChanged

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

```
public void notifyArrayItemRangeChanged(int positionStart, int itemCount)
```

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

| Parameters |
|---|---|
| `int positionStart` | The position of first item that has changed. |
| `int itemCount` | The count of how many items have changed. |

### set

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

```
public void set(int key, Object item)
```

Sets the item for the given key.

| Parameters |
|---|---|
| `int key` | The key associated with the item. |
| `https://developer.android.com/reference/java/lang/Object.html item` | The item associated with the key. |

### size

```
public int size()
```

Returns the number of items in the adapter.