Package icyllis.modernui.widget

# Class AdapterView<T extends Adapter>

java.lang.Object
icyllis.modernui.view.View
icyllis.modernui.view.ViewGroup
icyllis.modernui.widget.AdapterView<T>

Type Parameters:
  `T` - the adapter type

All Implemented Interfaces:
  `Drawable.Callback`, `ViewManager`, `ViewParent`

Direct Known Subclasses:
  `AbsListView`, `AbsSpinner`

public abstract class AdapterView<T extends Adapter> extends ViewGroup
An AdapterView is a view whose children are determined by an `Adapter`.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `AdapterView.AdapterContextMenuInfo`
  Extra menu information provided to the `View.OnCreateContextMenuListener.onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo)` callback when a context menu is brought up for this AdapterView.
  `static interface`
  `AdapterView.OnItemClickListener`
  Interface definition for a callback to be invoked when an item in this AdapterView has been clicked.
  `static interface`
  `AdapterView.OnItemLongClickListener`
  Interface definition for a callback to be invoked when an item in this view has been clicked and held.
  `static interface`
  `AdapterView.OnItemSelectedListener`
  Interface definition for a callback to be invoked when an item in this view has been selected.

  ## Nested classes/interfaces inherited from class icyllis.modernui.view.ViewGroup

  `ViewGroup.LayoutParams, ViewGroup.MarginLayoutParams`

  ## Nested classes/interfaces inherited from class icyllis.modernui.view.View

  `View.DragShadow, View.Focusable, View.FocusableMode, View.FocusDirection, View.FocusRealDirection, View.LayoutDir, View.NestedScrollType, View.OnAttachStateChangeListener, View.OnClickListener, View.OnContextClickListener, View.OnCreateContextMenuListener, View.OnDragListener, View.OnFocusChangeListener, View.OnGenericMotionListener, View.OnHoverListener, View.OnKeyListener, View.OnLayoutChangeListener, View.OnLongClickListener, View.OnScrollChangeListener, View.OnTouchListener, View.ResolvedLayoutDir, View.ScrollAxis, View.ScrollBarStyle, View.ScrollIndicators, View.TextAlignment, View.Visibility`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `INVALID_POSITION`
  Represents an invalid position.
  `static final long`
  `INVALID_ROW_ID`
  Represents an empty or invalid row id
  `static final int`
  `ITEM_VIEW_TYPE_HEADER_OR_FOOTER`
  The item view type returned by `Adapter.getItemViewType(int)` when the item is a header or footer.
  `static final int`
  `ITEM_VIEW_TYPE_IGNORE`
  The item view type returned by `Adapter.getItemViewType(int)` when the adapter does not want the item's view recycled.

  ### Fields inherited from class icyllis.modernui.view.ViewGroup

  `CLIP_TO_PADDING_MASK, FLAG_DISALLOW_INTERCEPT, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS`

  ### Fields inherited from class icyllis.modernui.view.View

  `ALPHA, BOTTOM, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLE, FOCUSABLE_AUTO, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, INVISIBLE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, LAYOUT_DIRECTION_UNDEFINED, LEFT, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, mPaddingBottom, mPaddingLeft, mPaddingRight, mPaddingTop, mScrollX, mScrollY, NO_ID, NOT_FOCUSABLE, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, RIGHT, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, SCROLL_X, SCROLL_Y, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TOP, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, TYPE_NON_TOUCH, TYPE_TOUCH, VIEW_MARKER, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y, Z`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AdapterView(Context context)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addView(View child)`
  This method is not supported and throws an UnsupportedOperationException when called.
  `void`
  `addView(View child, int index)`
  This method is not supported and throws an UnsupportedOperationException when called.
  `void`
  `addView(View child, int index, ViewGroup.LayoutParams params)`
  This method is not supported and throws an UnsupportedOperationException when called.
  `void`
  `addView(View child, ViewGroup.LayoutParams params)`
  This method is not supported and throws an UnsupportedOperationException when called.
  `abstract T`
  `getAdapter()`
  Returns the adapter currently associated with this widget.
  `int`
  `getCount()`
  `View`
  `getEmptyView()`
  When the current adapter is empty, the AdapterView can display a special view called the empty view.
  `int`
  `getFirstVisiblePosition()`
  Returns the position within the adapter's data set for the first item displayed on screen.
  `Object`
  `getItemAtPosition(int position)`
  Gets the data associated with the specified position in the list.
  `long`
  `getItemIdAtPosition(int position)`
  `int`
  `getLastVisiblePosition()`
  Returns the position within the adapter's data set for the last item displayed on screen.
  `final AdapterView.OnItemClickListener`
  `getOnItemClickListener()`
  `final AdapterView.OnItemLongClickListener`
  `getOnItemLongClickListener()`
  `final AdapterView.OnItemSelectedListener`
  `getOnItemSelectedListener()`
  `int`
  `getPositionForView(View view)`
  Returns the position within the adapter's data set for the view, where view is a an adapter item or a descendant of an adapter item.
  `Object`
  `getSelectedItem()`
  `long`
  `getSelectedItemId()`
  `int`
  `getSelectedItemPosition()`
  Return the position of the currently selected item within the adapter's data set
  `abstract View`
  `getSelectedView()`
  `protected void`
  `onDetachedFromWindow()`
  This is called when the view is detached from a window.
  `protected void`
  `onLayout(boolean changed, int left, int top, int right, int bottom)`
  Called from `View.layout(int, int, int, int)` when this view should assign a size and position to each of its children.
  `boolean`
  `performItemClick(View view, int position, long id)`
  Call the OnItemClickListener, if it is defined.
  `void`
  `removeAllViews()`
  This method is not supported and throws an UnsupportedOperationException when called.
  `void`
  `removeView(View child)`
  This method is not supported and throws an UnsupportedOperationException when called.
  `void`
  `removeViewAt(int index)`
  This method is not supported and throws an UnsupportedOperationException when called.
  `abstract void`
  `setAdapter(T adapter)`
  Sets the adapter that provides the data and the views to represent the data in this widget.
  `void`
  `setEmptyView(View emptyView)`
  Sets the view to show if the adapter is empty
  `void`
  `setFocusable(int focusable)`
  Sets whether this view can receive focus.
  `void`
  `setFocusableInTouchMode(boolean focusable)`
  Set whether this view can receive focus while in touch mode.
  `void`
  `setOnClickListener(View.OnClickListener l)`
  Register a callback to be invoked when this view is clicked.
  `void`
  `setOnItemClickListener(AdapterView.OnItemClickListener listener)`
  Register a callback to be invoked when an item in this AdapterView has been clicked.
  `void`
  `setOnItemLongClickListener(AdapterView.OnItemLongClickListener listener)`
  Register a callback to be invoked when an item in this AdapterView has been clicked and held
  `void`
  `setOnItemSelectedListener(AdapterView.OnItemSelectedListener listener)`
  Register a callback to be invoked when an item in this AdapterView has been selected.
  `abstract void`
  `setSelection(int position)`
  Sets the currently selected item.

  ### Methods inherited from class icyllis.modernui.view.ViewGroup

  `addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addTransientView, addView, addViewInLayout, addViewInLayout, attachViewToParent, bringChildToFront, checkLayoutParams, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyShortcutEvent, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchTouchEvent, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findViewByPredicateTraversal, findViewTraversal, focusableViewAvailable, focusSearch, generateDefaultLayoutParams, generateLayoutParams, getChildAt, getChildCount, getChildDrawingOrder, getChildDrawingOrder, getChildMeasureSpec, getChildVisibleRect, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutTransition, getNestedScrollAxes, getTouchscreenBlocksFocus, getTransientView, getTransientViewCount, getTransientViewIndex, hasBooleanFlag, hasFocus, hasTransientState, indexOfChild, internalSetPadding, isChildrenDrawingOrderEnabled, isLayoutSuppressed, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, offsetChildrenTopAndBottom, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onChildVisibilityChanged, onCreateDrawableState, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestFocusInDescendants, onResolvePointerIcon, onSetLayoutParams, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, removeAllViewsInLayout, removeDetachedView, removeTransientView, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestTransitionStart, resetResolvedDrawables, resolveDrawables, resolveLayoutDirection, resolveLayoutParams, resolvePadding, resolveRtlPropertiesIfNeeded, resolveTextAlignment, resolveTextDirection, restoreDefaultFocus, setAddStatesFromChildren, setBooleanFlag, setChildrenDrawingOrderEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutTransition, setTouchscreenBlocksFocus, setTransitionGroup, shouldDelayChildPressedState, showContextMenuForChild, startActionModeForChild, startViewTransition, suppressLayout, transformPointToViewLocal, updateViewLayout`

  ### Methods inherited from class icyllis.modernui.view.View

  `addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, awakenScrollBars, awakenScrollBars, callOnClick, cancelLongPress, cancelPendingInputEvents, canReceivePointerEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createContextMenu, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPointerEvent, dp, draw, drawableHotspotChanged, findViewById, findViewByPredicate, findViewByPredicateInsideOut, focusSearch, forceHasOverlappingRendering, forceLayout, generateViewId, getAlpha, getAnimationMatrix, getBackground, getBaseline, getBottom, getBoundsOnScreen, getBoundsOnScreen, getContext, getContextMenuInfo, getDefaultSize, getDrawableState, getDrawingRect, getElevation, getFadingEdge, getFadingEdgeLength, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalScrollbarHeight, getHorizontalScrollbarThumbDrawable, getHorizontalScrollbarTrackDrawable, getId, getInverseMatrix, getKeyDispatcherState, getLayoutDirection, getLayoutParams, getLeft, getLocalVisibleRect, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOnLongClickListener, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getPivotX, getPivotY, getRawLayoutDirection, getRawTextAlignment, getRawTextDirection, getRevealOnFocusHint, getRight, getRootView, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollIndicators, getScrollX, getScrollY, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getTag, getTextAlignment, getTextDirection, getTooltipText, getTooltipView, getTop, getTouchables, getTransitionAlpha, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getVerticalFadingEdgeLength, getVerticalScrollbarThumbDrawable, getVerticalScrollbarTrackDrawable, getVerticalScrollbarWidth, getViewRoot, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowVisibility, getX, getY, getZ, handleScrollBarDragging, hasExplicitFocusable, hasFocusable, hasIdentityMatrix, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasTranslationTransientState, hasWindowFocus, invalidate, invalidateDrawable, isActivated, isAttachedToWindow, isClickable, isContextClickable, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForegroundInsidePadding, isHapticFeedbackEnabled, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isInLayout, isInScrollingContainer, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionInherited, isLayoutDirectionResolved, isLayoutRequested, isLayoutRtl, isLongClickable, isNestedScrollingEnabled, isPaddingRelative, isPivotSet, isPressed, isRootNamespace, isScrollbarFadingEnabled, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentInherited, isTextAlignmentResolved, isTextDirectionInherited, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVerticalScrollBarHidden, keyboardNavigationClusterSearch, mapRectFromViewToScreenCoords, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAttachedToWindow, onCancelPendingInputEvents, onCreateContextMenu, onDragEvent, onDraw, onDrawForeground, onDrawScrollBars, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onKeyDown, onKeyShortcut, onKeyUp, onMeasure, onOverScrolled, onResolveDrawables, onRtlPropertiesChanged, onScrollChanged, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowVisibilityChanged, overScrollBy, performButtonActionOnTouchDown, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, playSoundEffect, pointInView, post, postDelayed, postInvalidate, postInvalidateDelayed, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, requestFocus, requestFocus, requestLayout, requestRectangleOnScreen, requestRectangleOnScreen, requireViewById, resetPivot, resolveSize, resolveSizeAndState, scheduleDrawable, scrollBy, scrollTo, setActivated, setAlpha, setAnimationMatrix, setBackground, setBottom, setClickable, setContextClickable, setDuplicateParentStateEnabled, setElevation, setEnabled, setFocusable, setFocusedByDefault, setFocusedInCluster, setForeground, setForegroundGravity, setFrame, setHapticFeedbackEnabled, setHasTransientState, setHasTranslationTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setIsRootNamespace, setKeyboardNavigationCluster, setLayoutDirection, setLayoutParams, setLeft, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnScrollChangeListener, setOnTouchListener, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPressed, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setScaleX, setScaleY, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateListAnimator, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTransitionAlpha, setTransitionName, setTransitionVisibility, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarThumbDrawable, setVerticalScrollbarTrackDrawable, setVisibility, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, sp, startActionMode, startActionMode, startDragAndDrop, startNestedScroll, stopNestedScroll, toGlobalMotionEvent, toLocalMotionEvent, toString, transformFromViewToWindowSpace, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, verifyDrawable, willNotDraw`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface icyllis.modernui.view.ViewParent

  `canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestLayout`

- ## Field Details

  - ### ITEM_VIEW_TYPE_IGNORE

    public static final int ITEM_VIEW_TYPE_IGNORE
    The item view type returned by `Adapter.getItemViewType(int)` when the adapter does not want the item's view recycled.
    See Also:
      - Constant Field Values

  - ### ITEM_VIEW_TYPE_HEADER_OR_FOOTER

    public static final int ITEM_VIEW_TYPE_HEADER_OR_FOOTER
    The item view type returned by `Adapter.getItemViewType(int)` when the item is a header or footer.
    See Also:
      - Constant Field Values

  - ### INVALID_POSITION

    public static final int INVALID_POSITION
    Represents an invalid position. All valid positions are in the range 0 to 1 less than the number of items in the current adapter.
    See Also:
      - Constant Field Values

  - ### INVALID_ROW_ID

    public static final long INVALID_ROW_ID
    Represents an empty or invalid row id
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### AdapterView

    public AdapterView(Context context)

- ## Method Details

  - ### setOnItemClickListener

    public void setOnItemClickListener(@Nullable AdapterView.OnItemClickListener listener)
    Register a callback to be invoked when an item in this AdapterView has been clicked.
    Parameters:
      `listener` - The callback that will be invoked.

  - ### getOnItemClickListener

    @Nullable public final AdapterView.OnItemClickListener getOnItemClickListener()
    Returns:
      The callback to be invoked with an item in this AdapterView has been clicked, or null if no callback has been set.

  - ### performItemClick

    public boolean performItemClick(View view, int position, long id)
    Call the OnItemClickListener, if it is defined. Performs all normal actions associated with clicking: reporting accessibility event, playing a sound, etc.
    Parameters:
      `view` - The view within the AdapterView that was clicked.
      `position` - The position of the view in the adapter.
      `id` - The row id of the item that was clicked.
    Returns:
      True if there was an assigned OnItemClickListener that was called, false otherwise is returned.

  - ### setOnItemLongClickListener

    public void setOnItemLongClickListener(AdapterView.OnItemLongClickListener listener)
    Register a callback to be invoked when an item in this AdapterView has been clicked and held
    Parameters:
      `listener` - The callback that will run

  - ### getOnItemLongClickListener

    public final AdapterView.OnItemLongClickListener getOnItemLongClickListener()
    Returns:
      The callback to be invoked with an item in this AdapterView has been clicked and held, or null if no callback has been set.

  - ### setOnItemSelectedListener

    public void setOnItemSelectedListener(@Nullable AdapterView.OnItemSelectedListener listener)
    Register a callback to be invoked when an item in this AdapterView has been selected.
    Parameters:
      `listener` - The callback that will run

  - ### getOnItemSelectedListener

    @Nullable public final AdapterView.OnItemSelectedListener getOnItemSelectedListener()

  - ### getAdapter

    public abstract T getAdapter()
    Returns the adapter currently associated with this widget.
    Returns:
      The adapter used to provide this view's content.

  - ### setAdapter

    public abstract void setAdapter(T adapter)
    Sets the adapter that provides the data and the views to represent the data in this widget.
    Parameters:
      `adapter` - The adapter to use to create this view's content.

  - ### addView

    public void addView(@Nonnull View child)
    This method is not supported and throws an UnsupportedOperationException when called.
    Overrides:
      `addView` in class `ViewGroup`
    Parameters:
      `child` - Ignored.
    Throws:
      `UnsupportedOperationException` - Every time this method is invoked.
    See Also:
      - `ViewGroup.generateDefaultLayoutParams()`

  - ### addView

    public void addView(@Nonnull View child, int index)
    This method is not supported and throws an UnsupportedOperationException when called.
    Overrides:
      `addView` in class `ViewGroup`
    Parameters:
      `child` - Ignored.
      `index` - Ignored.
    Throws:
      `UnsupportedOperationException` - Every time this method is invoked.
    See Also:
      - `ViewGroup.generateDefaultLayoutParams()`

  - ### addView

    public void addView(@Nonnull View child, @Nonnull ViewGroup.LayoutParams params)
    This method is not supported and throws an UnsupportedOperationException when called.
    Specified by:
      `addView` in interface `ViewManager`
    Overrides:
      `addView` in class `ViewGroup`
    Parameters:
      `child` - Ignored.
      `params` - Ignored.
    Throws:
      `UnsupportedOperationException` - Every time this method is invoked.

  - ### addView

    public void addView(@Nonnull View child, int index, @Nonnull ViewGroup.LayoutParams params)
    This method is not supported and throws an UnsupportedOperationException when called.
    Overrides:
      `addView` in class `ViewGroup`
    Parameters:
      `child` - Ignored.
      `index` - Ignored.
      `params` - Ignored.
    Throws:
      `UnsupportedOperationException` - Every time this method is invoked.

  - ### removeView

    public void removeView(@Nonnull View child)
    This method is not supported and throws an UnsupportedOperationException when called.
    Specified by:
      `removeView` in interface `ViewManager`
    Overrides:
      `removeView` in class `ViewGroup`
    Parameters:
      `child` - Ignored.
    Throws:
      `UnsupportedOperationException` - Every time this method is invoked.

  - ### removeViewAt

    public void removeViewAt(int index)
    This method is not supported and throws an UnsupportedOperationException when called.
    Overrides:
      `removeViewAt` in class `ViewGroup`
    Parameters:
      `index` - Ignored.
    Throws:
      `UnsupportedOperationException` - Every time this method is invoked.

  - ### removeAllViews

    public void removeAllViews()
    This method is not supported and throws an UnsupportedOperationException when called.
    Overrides:
      `removeAllViews` in class `ViewGroup`
    Throws:
      `UnsupportedOperationException` - Every time this method is invoked.

  - ### onLayout

    protected void onLayout(boolean changed, int left, int top, int right, int bottom)
    Description copied from class: `View`
    Called from `View.layout(int, int, int, int)` when this view should assign a size and position to each of its children.

    Derived classes with children should override this method and call layout on each of their children.

    Specified by:
      `onLayout` in class `ViewGroup`
    Parameters:
      `changed` - This is a new size or position for this view
      `left` - Left position, relative to parent
      `top` - Top position, relative to parent
      `right` - Right position, relative to parent
      `bottom` - Bottom position, relative to parent

  - ### getSelectedItemPosition

    public int getSelectedItemPosition()
    Return the position of the currently selected item within the adapter's data set
    Returns:
      int Position (starting at 0), or `INVALID_POSITION` if there is nothing selected.

  - ### getSelectedItemId

    public long getSelectedItemId()
    Returns:
      The id corresponding to the currently selected item, or `INVALID_ROW_ID` if nothing is selected.

  - ### getSelectedView

    @Nullable public abstract View getSelectedView()
    Returns:
      The view corresponding to the currently selected item, or null if nothing is selected

  - ### getSelectedItem

    @Nullable public Object getSelectedItem()
    Returns:
      The data corresponding to the currently selected item, or null if there is nothing selected.

  - ### getCount

    public int getCount()
    Returns:
      The number of items owned by the Adapter associated with this AdapterView. (This is the number of data items, which may be larger than the number of visible views.)

  - ### getPositionForView

    public int getPositionForView(View view)
    Returns the position within the adapter's data set for the view, where view is a an adapter item or a descendant of an adapter item.

    Note: The result of this method only reflects the position of the data bound to view during the most recent layout pass. If the adapter's data set has changed without a subsequent layout pass, the position returned by this method may not match the current position of the data within the adapter.

    Parameters:
      `view` - an adapter item, or a descendant of an adapter item. This must be visible in this AdapterView at the time of the call.
    Returns:
      the position within the adapter's data set of the view, or `INVALID_POSITION` if the view does not correspond to a list item (or it is not currently visible)

  - ### getFirstVisiblePosition

    public int getFirstVisiblePosition()
    Returns the position within the adapter's data set for the first item displayed on screen.
    Returns:
      The position within the adapter's data set

  - ### getLastVisiblePosition

    public int getLastVisiblePosition()
    Returns the position within the adapter's data set for the last item displayed on screen.
    Returns:
      The position within the adapter's data set

  - ### setSelection

    public abstract void setSelection(int position)
    Sets the currently selected item. To support accessibility subclasses that override this method must invoke the overridden super method first.
    Parameters:
      `position` - Index (starting at 0) of the data item to be selected.

  - ### setEmptyView

    public void setEmptyView(View emptyView)
    Sets the view to show if the adapter is empty

  - ### getEmptyView

    public View getEmptyView()
    When the current adapter is empty, the AdapterView can display a special view called the empty view. The empty view is used to provide feedback to the user that no data is available in this AdapterView.
    Returns:
      The view to show if the adapter is empty.

  - ### setFocusable

    public void setFocusable(int focusable)
    Description copied from class: `View`
    Sets whether this view can receive focus.

    Setting this to `View.FOCUSABLE_AUTO` tells the framework to determine focusability automatically based on the view's interactivity. This is the default.

    Setting this to NOT_FOCUSABLE will ensure that this view is also not focusable in touch mode.

    Overrides:
      `setFocusable` in class `View`
    Parameters:
      `focusable` - One of `View.NOT_FOCUSABLE`, `View.FOCUSABLE`, or `View.FOCUSABLE_AUTO`.
    See Also:
      - `View.setFocusableInTouchMode(boolean)`

  - ### setFocusableInTouchMode

    public void setFocusableInTouchMode(boolean focusable)
    Description copied from class: `View`
    Set whether this view can receive focus while in touch mode.

    Setting this to true will also ensure that this view is focusable.

    Overrides:
      `setFocusableInTouchMode` in class `View`
    Parameters:
      `focusable` - If true, this view can receive the focus while in touch mode.
    See Also:
      - `View.setFocusable(boolean)`

  - ### getItemAtPosition

    @Nullable public Object getItemAtPosition(int position)
    Gets the data associated with the specified position in the list.
    Parameters:
      `position` - Which data to get
    Returns:
      The data associated with the specified position in the list

  - ### getItemIdAtPosition

    public long getItemIdAtPosition(int position)

  - ### setOnClickListener

    public void setOnClickListener(@Nullable View.OnClickListener l)
    Description copied from class: `View`
    Register a callback to be invoked when this view is clicked. If this view is not clickable, it becomes clickable.
    Overrides:
      `setOnClickListener` in class `View`
    Parameters:
      `l` - The callback that will run
    See Also:
      - `View.setClickable(boolean)`

  - ### onDetachedFromWindow

    protected void onDetachedFromWindow()
    Description copied from class: `View`
    This is called when the view is detached from a window. At this point it no longer has a surface for drawing.
    Overrides:
      `onDetachedFromWindow` in class `View`
    See Also:
      - `View.onAttachedToWindow()`