# PresenterSelector

# 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)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector "View this page in Java")

<br />

```
abstract class PresenterSelector
```

<br />

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

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

*** ** * ** ***

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

## Summary

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

|                                                                                 ### Public functions                                                                                  |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract `[Presenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter)`?`                                                                          | [getPresenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSelector#getPresenter(java.lang.Object))`(item: `[Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)`?)` Returns a presenter for the given item. |
| [Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[Presenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter)`!>?` | [getPresenters](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSelector#getPresenters())`()` Returns an array of all possible presenters.                                                                                              |

## Public constructors

### PresenterSelector

Added in 1.1.0  

```
PresenterSelector()
```  

## Public functions

### getPresenter

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

```
abstract fun getPresenter(item: Any?): Presenter?
```

Returns a presenter for the given item.  

### getPresenters

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

```
fun getPresenters(): Array<Presenter!>?
```

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