# ClassPresenterSelector

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

*** ** * ** ***

<br />

```
public final class ClassPresenterSelector extends PresenterSelector
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.leanback.widget.PresenterSelector](https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector) ||
|   | ↳ | [androidx.leanback.widget.ClassPresenterSelector](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.

## Summary

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

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/ClassPresenterSelector` | `https://developer.android.com/reference/androidx/leanback/widget/ClassPresenterSelector#addClassPresenter(java.lang.Class<?>,androidx.leanback.widget.Presenter)(https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> cls, https://developer.android.com/reference/androidx/leanback/widget/Presenter presenter)` Sets a presenter to be used for the given class. |
| `https://developer.android.com/reference/androidx/leanback/widget/ClassPresenterSelector` | `https://developer.android.com/reference/androidx/leanback/widget/ClassPresenterSelector#addClassPresenterSelector(java.lang.Class<?>,androidx.leanback.widget.PresenterSelector)( https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> cls, https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector presenterSelector )` Sets a presenter selector to be used for the given class. |
| `@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/ClassPresenterSelector#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. |
| `Presenter[]` | `https://developer.android.com/reference/androidx/leanback/widget/ClassPresenterSelector#getPresenters()()` Returns an array of all possible presenters. |

## Public constructors

### ClassPresenterSelector

Added in 1.1.0

```
public ClassPresenterSelector()
```

## Public methods

### addClassPresenter

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

```
public ClassPresenterSelector addClassPresenter(Class<@NonNull ?> cls, Presenter presenter)
```

Sets a presenter to be used for the given class.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> cls` | The data model class to be rendered. |
| `https://developer.android.com/reference/androidx/leanback/widget/Presenter presenter` | The presenter that renders the objects of the given class. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/ClassPresenterSelector` | This ClassPresenterSelector object. |

### addClassPresenterSelector

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

```
public ClassPresenterSelector addClassPresenterSelector(
    Class<@NonNull ?> cls,
    PresenterSelector presenterSelector
)
```

Sets a presenter selector to be used for the given class.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> cls` | The data model class to be rendered. |
| `https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector presenterSelector` | The presenter selector that finds the right presenter for a given class. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/ClassPresenterSelector` | This ClassPresenterSelector object. |

### getPresenter

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

Returns a presenter for the given item.

### getPresenters

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

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