Class BaseAdapter

java.lang.Object
icyllis.modernui.widget.BaseAdapter
All Implemented Interfaces:
Adapter, ListAdapter, SpinnerAdapter
Direct Known Subclasses:
ArrayAdapter, MenuAdapter

public abstract class BaseAdapter extends Object implements ListAdapter, SpinnerAdapter
Common base class of common implementation for an Adapter that can be used in both ListView (by implementing the specialized ListAdapter interface) and Spinner (by implementing the specialized SpinnerAdapter interface).
  • Constructor Details

    • BaseAdapter

      public BaseAdapter()
  • Method Details

    • hasStableIds

      public boolean hasStableIds()
      Description copied from interface: Adapter
      Indicates whether the item ids are stable across changes to the underlying data.
      Specified by:
      hasStableIds in interface Adapter
      Returns:
      True if the same id always refers to the same object.
    • registerDataSetObserver

      public void registerDataSetObserver(@Nonnull DataSetObserver observer)
      Description copied from interface: Adapter
      Register an observer that is called when changes happen to the data used by this adapter.
      Specified by:
      registerDataSetObserver in interface Adapter
      Parameters:
      observer - the object that gets notified when the data set changes.
    • unregisterDataSetObserver

      public void unregisterDataSetObserver(@Nonnull DataSetObserver observer)
      Description copied from interface: Adapter
      Unregister an observer that has previously been registered with this adapter via Adapter.registerDataSetObserver(icyllis.modernui.util.DataSetObserver).
      Specified by:
      unregisterDataSetObserver in interface Adapter
      Parameters:
      observer - the object to unregister.
    • notifyDataSetChanged

      public void notifyDataSetChanged()
      Notifies the attached observers that the underlying data has been changed and any View reflecting the data set should refresh itself.
    • notifyDataSetInvalidated

      public void notifyDataSetInvalidated()
      Notifies the attached observers that the underlying data is no longer valid or available. Once invoked this adapter is no longer valid and should not report further data set changes.
    • areAllItemsEnabled

      public boolean areAllItemsEnabled()
      Description copied from interface: ListAdapter
      Indicates whether all the items in this adapter are enabled. If the value returned by this method changes over time, there is no guarantee it will take effect. If true, it means all items are selectable and clickable (there is no separator.)
      Specified by:
      areAllItemsEnabled in interface ListAdapter
      Returns:
      True if all items are enabled, false otherwise.
      See Also:
    • isEnabled

      public boolean isEnabled(int position)
      Description copied from interface: ListAdapter
      Returns true if the item at the specified position is not a separator. (A separator is a non-selectable, non-clickable item).

      The result is unspecified if position is invalid. An ArrayIndexOutOfBoundsException should be thrown in that case for fast failure.

      Specified by:
      isEnabled in interface ListAdapter
      Parameters:
      position - Index of the item
      Returns:
      True if the item is not a separator
      See Also:
    • getDropDownView

      @Nullable public View getDropDownView(int position, @Nullable View convertView, @Nonnull ViewGroup parent)
      Description copied from interface: SpinnerAdapter
      Gets a View that displays in the drop-down popup the data at the specified position in the data set.

      This method should not return null unless the item count is zero.

      Specified by:
      getDropDownView in interface SpinnerAdapter
      Parameters:
      position - index of the item whose view we want.
      convertView - the old view to reuse, if possible. Note: You should check that this view is non-null and of an appropriate type before using. If it is not possible to convert this view to display the correct data, this method can create a new view.
      parent - the parent that this view will eventually be attached to
      Returns:
      a View corresponding to the data at the specified position.
    • getItemViewType

      public int getItemViewType(int position)
      Description copied from interface: Adapter
      Get the type of View that will be created by Adapter.getView(int, icyllis.modernui.view.View, icyllis.modernui.view.ViewGroup) for the specified item.
      Specified by:
      getItemViewType in interface Adapter
      Parameters:
      position - The position of the item within the adapter's data set whose view type we want.
      Returns:
      An integer representing the type of View. Two views should share the same type if one can be converted to the other in Adapter.getView(int, icyllis.modernui.view.View, icyllis.modernui.view.ViewGroup). Note: Integers must be in the range 0 to Adapter.getViewTypeCount() - 1. Adapter.IGNORE_ITEM_VIEW_TYPE can also be returned.
      See Also:
    • getViewTypeCount

      public int getViewTypeCount()
      Description copied from interface: Adapter

      Returns the number of types of Views that will be created by Adapter.getView(int, icyllis.modernui.view.View, icyllis.modernui.view.ViewGroup). Each type represents a set of views that can be converted in Adapter.getView(int, icyllis.modernui.view.View, icyllis.modernui.view.ViewGroup). If the adapter always returns the same type of View for all items, this method should return 1.

      This method will only be called when the adapter is set on the AdapterView.

      Specified by:
      getViewTypeCount in interface Adapter
      Returns:
      The number of types of Views that will be created by this adapter
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface Adapter
      Returns:
      true if this adapter doesn't contain any data. This is used to determine whether the empty view should be displayed. A typical implementation will return getCount() == 0 but since getCount() includes the headers and footers, specialized adapters might want a different behavior.