# PresenterSelector

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

*** ** * ** ***


```
public abstract class PresenterSelector
```

<br />

Known direct subclasses [ClassPresenterSelector](https://developer.android.com/reference/androidx/leanback/widget/ClassPresenterSelector), [ControlButtonPresenterSelector](https://developer.android.com/reference/androidx/leanback/widget/ControlButtonPresenterSelector), [SinglePresenterSelector](https://developer.android.com/reference/androidx/leanback/widget/SinglePresenterSelector)

|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/ClassPresenterSelector` | A ClassPresenterSelector selects a `https://developer.android.com/reference/androidx/leanback/widget/Presenter` based on the item's Java class. |
| `https://developer.android.com/reference/androidx/leanback/widget/ControlButtonPresenterSelector` | Displays primary and secondary controls for a `https://developer.android.com/reference/androidx/leanback/widget/PlaybackControlsRow`. |
| `https://developer.android.com/reference/androidx/leanback/widget/SinglePresenterSelector` | A `https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector` that always returns the same `https://developer.android.com/reference/androidx/leanback/widget/Presenter`. |

*** ** * ** ***

A PresenterSelector is used to obtain a `https://developer.android.com/reference/androidx/leanback/widget/Presenter` for a given Object. Similar to `https://developer.android.com/reference/androidx/leanback/widget/Presenter`, PresenterSelector is stateless.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector#PresenterSelector()()` |

| ### Public methods |
|---|---|
| `abstract @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/PresenterSelector#getPresenter(java.lang.Object)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html item)` Returns a presenter for the given item. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html Presenter[]` | `https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector#getPresenters()()` Returns an array of all possible presenters. |

## Public constructors

### PresenterSelector

Added in 1.1.0

```
public PresenterSelector()
```

## Public methods

### getPresenter

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

```
public abstract @Nullable Presenter getPresenter(@Nullable Object item)
```

Returns a presenter for the given item.

### getPresenters

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

```
public @Nullable Presenter[] getPresenters()
```

Returns an array of all possible presenters. The returned array should not be modified.