# AbstractMediaListHeaderPresenter

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

*** ** * ** ***

<br />

```
public abstract class AbstractMediaListHeaderPresenter extends RowPresenter
```

<br />

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

*** ** * ** ***

Abstract presenter class for rendering the header for a list of media items in a playlist. The presenter creates a `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder` for the TextView holding the header text.

Subclasses of this class must override `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter#onBindMediaListHeaderViewHolder(androidx.leanback.widget.AbstractMediaListHeaderPresenter.ViewHolder,java.lang.Object)` in order to bind their header text to the media list header view.

`https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter` can be used in conjunction with this presenter in order to display a playlist with a header view.

## Summary

| ### Nested types |
|---|
| `public class https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder extends https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` The ViewHolder for the `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter`. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter#AbstractMediaListHeaderPresenter()()` Constructor used for creating an abstract media-list header presenter. |
| `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter#AbstractMediaListHeaderPresenter(android.content.Context,int)(https://developer.android.com/reference/android/content/Context.html context, int mThemeResId)` Constructor used for creating an abstract media-list header presenter of a given theme. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter#isUsingDefaultSelectEffect()()` Returns true if this RowPresenter is using the default dimming effect. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter#setBackgroundColor(int)(int color)` Sets the background color for the row views within the playlist. |

| ### Protected methods |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter#createRowViewHolder(android.view.ViewGroup)(https://developer.android.com/reference/android/view/ViewGroup.html parent)` Called to create a ViewHolder object for a Row. |
| `abstract void` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter#onBindMediaListHeaderViewHolder(androidx.leanback.widget.AbstractMediaListHeaderPresenter.ViewHolder,java.lang.Object)( https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder vh, https://developer.android.com/reference/java/lang/Object.html item )` Binds the playlist header data model provided by the user to the `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder` provided by the `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter`. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter#onBindRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder,java.lang.Object)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/Object.html item )` Binds the given row object to the given ViewHolder. |

### Inherited Constants

From [androidx.leanback.widget.RowPresenter](https://developer.android.com/reference/androidx/leanback/widget/RowPresenter) `static final int` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_CUSTOM() = 0`

Don't synchronize row view activated status with selected status or expanded status, application will do its own through `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)`.
`static final int` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_TO_EXPANDED() = 1`

Synchronizes row view's activated status to expand status of the row view holder.
`static final int` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED() = 3`

Sets the row view's activated status to true when both expand and selected are true.
`static final int` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_TO_SELECTED() = 2`

Synchronizes row view's activated status to selected status of the row view holder.

### 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](https://developer.android.com/reference/androidx/leanback/widget/Presenter) `static void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#cancelAnimationsRecursive(android.view.View)(https://developer.android.com/reference/android/view/View.html view)`

Utility method for removing all running animations on a view.
`final https://developer.android.com/reference/java/lang/Object.html` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#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.
`abstract void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object)(

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder,

@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html item

)`

Binds a `https://developer.android.com/reference/android/view/View.html` to an item.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object,java.util.List<java.lang.Object>)(

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder,

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/Object.html item,

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/Object.html> payloads

)`

Binds a `https://developer.android.com/reference/android/view/View.html` to an item with a list of payloads.
`abstract @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onCreateViewHolder(android.view.ViewGroup)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/view/ViewGroup.html parent)`

Creates a new `https://developer.android.com/reference/android/view/View.html`.
`abstract void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onUnbindViewHolder(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder)`

Unbinds a `https://developer.android.com/reference/android/view/View.html` from an item.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onViewAttachedToWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been attached to a window.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onViewDetachedFromWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been detached from its window.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#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 Presenter functions.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#setOnClickListener(androidx.leanback.widget.Presenter.ViewHolder,android.view.View.OnClickListener)(

https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder,

https://developer.android.com/reference/android/view/View.OnClickListener.html listener

)`

Called to set a click listener for the given view holder.
From [androidx.leanback.widget.RowPresenter](https://developer.android.com/reference/androidx/leanback/widget/RowPresenter) `void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#dispatchItemSelectedListener(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(

https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh,

boolean selected

)`

This method is only called from `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onRowViewSelected(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)` onRowViewSelected.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#freeze(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder holder, boolean freeze)`

Freezes/unfreezes the row, typically used when a transition starts/ends.
`final https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getHeaderPresenter()()`

Returns the Presenter used for rendering the header, or null if none has been set.
`final https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getRowViewHolder(androidx.leanback.widget.Presenter.ViewHolder)(https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Returns the `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` from the given RowPresenter ViewHolder.
`final boolean` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getSelectEffectEnabled()()`

Returns true if the row selection effect is enabled.
`final float` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getSelectLevel(androidx.leanback.widget.Presenter.ViewHolder)(https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder vh)`

Returns the current select level.
`final int` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getSyncActivatePolicy()()`

Returns the policy of updating row view activated status.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#initializeRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder)(https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh)`

Called after a `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` is created for a Row.
`boolean` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#isClippingChildren()()`

Returns true if the Row view should clip its children.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object)(

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder,

@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html item

)`

Binds a `https://developer.android.com/reference/android/view/View.html` to an item.
`final https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onCreateViewHolder(android.view.ViewGroup)(https://developer.android.com/reference/android/view/ViewGroup.html parent)`

Creates a new `https://developer.android.com/reference/android/view/View.html`.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onRowViewAttachedToWindow(androidx.leanback.widget.RowPresenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh)`

Invoked when the row view is attached to the window.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onRowViewDetachedFromWindow(androidx.leanback.widget.RowPresenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh)`

Invoked when the row view is detached from the window.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onRowViewExpanded(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh, boolean expanded)`

Called when the row view's expanded state changes.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onRowViewSelected(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh, boolean selected)`

Called when the given row view changes selection state.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onSelectLevelChanged(androidx.leanback.widget.RowPresenter.ViewHolder)(https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh)`

Callback when the select level changes.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onUnbindRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh)`

Unbinds the given ViewHolder.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onUnbindViewHolder(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder)`

Unbinds a `https://developer.android.com/reference/android/view/View.html` from an item.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onViewAttachedToWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been attached to a window.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onViewDetachedFromWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been detached from its window.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setEntranceTransitionState(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder holder,

boolean afterEntrance

)`

Changes the visibility of views.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setHeaderPresenter(androidx.leanback.widget.RowHeaderPresenter)(https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter headerPresenter)`

Sets the Presenter used for rendering the header.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setRowViewExpanded(androidx.leanback.widget.Presenter.ViewHolder,boolean)(https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder, boolean expanded)`

Sets the expanded state of a Row view.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setRowViewSelected(androidx.leanback.widget.Presenter.ViewHolder,boolean)(https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder, boolean selected)`

Sets the selected state of a Row view.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setSelectEffectEnabled(boolean)(boolean applyDimOnSelect)`

Enables or disables the row selection effect.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setSelectLevel(androidx.leanback.widget.Presenter.ViewHolder,float)(https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder vh, float level)`

Sets the current select level to a value between 0 (unselected) and 1 (selected).
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setSyncActivatePolicy(int)(int syncActivatePolicy)`

Sets the policy of updating row view activated status.

## Public constructors

### AbstractMediaListHeaderPresenter

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

```
public AbstractMediaListHeaderPresenter()
```

Constructor used for creating an abstract media-list header presenter. The styling for this presenter is extracted from Context of parent in `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter#createRowViewHolder(android.view.ViewGroup)`.

### AbstractMediaListHeaderPresenter

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

```
public AbstractMediaListHeaderPresenter(Context context, int mThemeResId)
```

Constructor used for creating an abstract media-list header presenter of a given theme.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/content/Context.html context` | The context the user of this presenter is running in. |
| `int mThemeResId` | The resource id of the desired theme used for styling of this presenter. |

## Public methods

### isUsingDefaultSelectEffect

```
public boolean isUsingDefaultSelectEffect()
```

Returns true if this RowPresenter is using the default dimming effect. A subclass may (most likely) return false and override `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onSelectLevelChanged(androidx.leanback.widget.RowPresenter.ViewHolder)`.

### setBackgroundColor

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

```
public void setBackgroundColor(int color)
```

Sets the background color for the row views within the playlist. If this is not set, a default color, defaultBrandColor, from theme is used. This defaultBrandColor defaults to android:attr/colorPrimary on v21, if it's specified.

| Parameters |
|---|---|
| `int color` | The ARGB color used to set as the header text background color. |

## Protected methods

### createRowViewHolder

```
protected RowPresenter.ViewHolder createRowViewHolder(ViewGroup parent)
```

Called to create a ViewHolder object for a Row. Subclasses will override this method to return a different concrete ViewHolder object.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/view/ViewGroup.html parent` | The parent View for the Row's view holder. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` | A ViewHolder for the Row's View. |

### onBindMediaListHeaderViewHolder

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

```
protected abstract void onBindMediaListHeaderViewHolder(
    AbstractMediaListHeaderPresenter.ViewHolder vh,
    Object item
)
```

Binds the playlist header data model provided by the user to the `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder` provided by the `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter`. The subclasses of this presenter can access and bind the text view corresponding to the header by calling `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder#getHeaderView()`, on the `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder` provided as the argument `vh` by this presenter.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder vh` | The ViewHolder for this `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter`. |
| `https://developer.android.com/reference/java/lang/Object.html item` | The header data object being presented. |

### onBindRowViewHolder

```
protected void onBindRowViewHolder(
    @NonNull RowPresenter.ViewHolder vh,
    @NonNull Object item
)
```

Binds the given row object to the given ViewHolder. Derived classes of `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter` overriding `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onBindRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder,java.lang.Object)` must call through the super class's implementation of this method.