# AbstractMediaItemPresenter.ViewHolder

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

*** ** * ** ***

<br />

```
public class AbstractMediaItemPresenter.ViewHolder extends RowPresenter.ViewHolder
```

<br />

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||||
| ↳ | [androidx.leanback.widget.Presenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder) |||
|   | ↳ | [androidx.leanback.widget.RowPresenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder) ||
|   |   | ↳ | [androidx.leanback.widget.AbstractMediaItemPresenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder) |

*** ** * ** ***

The ViewHolder for the `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter`. It references different views that place different meta-data corresponding to a media item details, actions, selector, listeners, and presenters,

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#ViewHolder(android.view.View)(https://developer.android.com/reference/android/view/View.html view)` |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/android/view/ViewGroup.html` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemActionsContainer()()` |
| `https://developer.android.com/reference/android/view/View.html` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemDetailsView()()` |
| `https://developer.android.com/reference/android/widget/TextView.html` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemDurationView()()` |
| `https://developer.android.com/reference/android/widget/TextView.html` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemNameView()()` Returns the view displayed when the media item is neither playing nor paused, corresponding to the playback state of PLAY_STATE_INITIAL. |
| `https://developer.android.com/reference/android/widget/TextView.html` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemNumberView()()` |
| `https://developer.android.com/reference/android/widget/ViewFlipper.html` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemNumberViewFlipper()()` |
| `https://developer.android.com/reference/android/view/View.html` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemPausedView()()` |
| `https://developer.android.com/reference/android/view/View.html` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemPlayingView()()` |
| `MultiActionsProvider.MultiAction[]` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemRowActions()()` |
| `https://developer.android.com/reference/android/view/View.html` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemRowSeparator()()` |
| `https://developer.android.com/reference/android/view/View.html` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getSelectorView()()` |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#notifyActionChanged(androidx.leanback.widget.MultiActionsProvider.MultiAction)(https://developer.android.com/reference/androidx/leanback/widget/MultiActionsProvider.MultiAction action)` Notifies an action has changed in this media row and the UI needs to be updated |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#notifyDetailsChanged()()` Notifies the content of the media item details in a row has changed and triggers updating the UI. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#notifyPlayStateChanged()()` Notifies the playback state of the media item row has changed. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#onBindRowActions()()` Binds the actions in a media item row object to their views. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#setSelectedMediaItemNumberView(int)(int position)` Flips to the view at index 'position'. |

### Inherited fields

From [androidx.leanback.widget.Presenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder) `final https://developer.android.com/reference/android/view/View.html` `https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder#view()` From [androidx.leanback.widget.RowPresenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder) `final https://developer.android.com/reference/androidx/leanback/graphics/ColorOverlayDimmer` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#mColorDimmer()`

### Inherited methods

From [androidx.leanback.widget.FacetProvider](https://developer.android.com/reference/androidx/leanback/widget/FacetProvider) `abstract @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/FacetProvider#getFacet(java.lang.Class<?>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> facetClass)`

Queries optional implemented facet.
From [androidx.leanback.widget.Presenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder) `final https://developer.android.com/reference/java/lang/Object.html` `https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder#getFacet(java.lang.Class<?>)(https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> facetClass)`

Queries optional implemented facet.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder#setFacet(java.lang.Class<?>,java.lang.Object)(https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> facetClass, https://developer.android.com/reference/java/lang/Object.html facetImpl)`

Sets dynamic implemented facet in addition to basic ViewHolder functions.
From [androidx.leanback.widget.RowPresenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder) `final https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter.ViewHolder` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getHeaderViewHolder()()`

Returns the view holder for the Row header for this Row.
`final https://developer.android.com/reference/androidx/leanback/widget/BaseOnItemViewClickedListener` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getOnItemViewClickedListener()()`

Returns the listener for item click event.
`final https://developer.android.com/reference/androidx/leanback/widget/BaseOnItemViewSelectedListener` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getOnItemViewSelectedListener()()`

Returns the listener for item or row selection.
`https://developer.android.com/reference/android/view/View.OnKeyListener.html` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getOnKeyListener()()`

Returns the key listener.
`final https://developer.android.com/reference/androidx/leanback/widget/Row` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getRow()()`

Returns the row bound to this ViewHolder.
`final https://developer.android.com/reference/java/lang/Object.html` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getRowObject()()`

Returns the Row object bound to this ViewHolder.
`final float` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getSelectLevel()()`

Returns the current selection level of the Row.
`@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/RowPresenter.ViewHolder#getSelectedItem()()`

Return currently selected item inside a row ViewHolder.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getSelectedItemViewHolder()()`

Return `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` of currently selected item inside a row ViewHolder.
`final boolean` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#isExpanded()()`

Returns whether the Row is in its expanded state.
`final boolean` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#isSelected()()`

Returns whether the Row is selected.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)(boolean activated)`

Sets the row view's activated status.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setOnItemViewClickedListener(androidx.leanback.widget.BaseOnItemViewClickedListener)(https://developer.android.com/reference/androidx/leanback/widget/BaseOnItemViewClickedListener listener)`

Sets the listener for item click event.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setOnItemViewSelectedListener(androidx.leanback.widget.BaseOnItemViewSelectedListener)(https://developer.android.com/reference/androidx/leanback/widget/BaseOnItemViewSelectedListener listener)`

Sets the listener for item or row selection.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setOnKeyListener(android.view.View.OnKeyListener)(https://developer.android.com/reference/android/view/View.OnKeyListener.html keyListener)`

Sets a key listener.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#syncActivatedStatus(android.view.View)(https://developer.android.com/reference/android/view/View.html view)`

Synchronizes the activated status of view to the last value passed through `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)`.

## Public constructors

### ViewHolder

```
public ViewHolder(View view)
```

## Public methods

### getMediaItemActionsContainer

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

```
public ViewGroup getMediaItemActionsContainer()
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/ViewGroup.html` | The view containing the set of custom actions |

### getMediaItemDetailsView

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

```
public View getMediaItemDetailsView()
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html` | The view container of media item details |

### getMediaItemDurationView

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

```
public TextView getMediaItemDurationView()
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/widget/TextView.html` | The TextView responsible for rendering the media item duration |

### getMediaItemNameView

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

```
public TextView getMediaItemNameView()
```

Returns the view displayed when the media item is neither playing nor paused, corresponding to the playback state of PLAY_STATE_INITIAL.

| Returns |
|---|---|
| `https://developer.android.com/reference/android/widget/TextView.html` | The TextView responsible for rendering the media item name. |

### getMediaItemNumberView

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

```
public TextView getMediaItemNumberView()
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/widget/TextView.html` | The TextView responsible for rendering the media item number. This view is rendered when the media item row is neither playing nor paused. |

### getMediaItemNumberViewFlipper

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

```
public ViewFlipper getMediaItemNumberViewFlipper()
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/widget/ViewFlipper.html` | The FlipperView responsible for flipping between different media item number views depending on the playback state |

### getMediaItemPausedView

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

```
public View getMediaItemPausedView()
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html` | The view rendered when the media item row is paused. |

### getMediaItemPlayingView

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

```
public View getMediaItemPlayingView()
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html` | The view rendered when the media item row is playing. |

### getMediaItemRowActions

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

```
public MultiActionsProvider.MultiAction[] getMediaItemRowActions()
```

| Returns |
|---|---|
| `MultiActionsProvider.MultiAction[]` | Array of MultiActions displayed for this media item row |

### getMediaItemRowSeparator

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

```
public View getMediaItemRowSeparator()
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html` | The view responsible for rendering the separator line between media rows |

### getSelectorView

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

```
public View getSelectorView()
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html` | The SelectorView responsible for highlighting the in-focus view within each media item row |

### notifyActionChanged

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

```
public void notifyActionChanged(MultiActionsProvider.MultiAction action)
```

Notifies an action has changed in this media row and the UI needs to be updated

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/MultiActionsProvider.MultiAction action` | The action whose state has changed |

### notifyDetailsChanged

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

```
public void notifyDetailsChanged()
```

Notifies the content of the media item details in a row has changed and triggers updating the UI. This causes `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter#onBindMediaDetails(androidx.leanback.widget.AbstractMediaItemPresenter.ViewHolder,java.lang.Object)` on the user's provided presenter to be called back, allowing them to update UI accordingly.

### notifyPlayStateChanged

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

```
public void notifyPlayStateChanged()
```

Notifies the playback state of the media item row has changed. This in turn triggers updating of the UI for that media item row if corresponding views are specified for each playback state. By default, 3 views are provided for each playback state, or these views can be provided by the user.

### onBindRowActions

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

```
public void onBindRowActions()
```

Binds the actions in a media item row object to their views. This consists of creating (or reusing the existing) action view holders, and populating them with the actions' icons.

### setSelectedMediaItemNumberView

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

```
public void setSelectedMediaItemNumberView(int position)
```

Flips to the view at index 'position'. This position corresponds to the index of a particular view within the ViewFlipper layout specified for the MediaItemNumberView (see playbackMediaItemNumberViewFlipperLayout attribute).

| Parameters |
|---|---|
| `int position` | The index of the child view to display. |