Android Programming


SpinnerAdapter is an interface that binds android.widget.Spinner to its data.

This interface lives inside the android.widget package:

package android.widget;

Like the ListAdapter, this interface derives majority of its methods from the android.widget.Adapter interface.

public interface SpinnerAdapter extends Adapter {}

Spinners in android show data in dropdowns. They are the equivalence of ComboBox in say Swing or WinForms.

However,because of the SpinnerAdapter, spinners are very customizable.

This is because spinner adapter allows for definition of two different views:

  1. One showing the data in the spinner itself.

  2. One showing the data in a dropdown list when the spinner is pressed.

Methods in SpinnerAdapter

We said SpinnerAdapter inherits all its methods from the Adapter apart from the getDropDownView().

public View getDropDownView(int position,View convertView,ViewGroup parent): This method will return a android.view.View object that will display data at the specified position in the dropdown popup.

  • The position parameter is the index of the item whose view we want to return
  • The convertView is the old view we are recycling. Normally you check if it's null first before using it. You can also create a new View as well.
  • The parent parameter is the parent view onto which we will attach this View.

Classes that Implement SpinnerAdapter

SpinnerAdapter is an interface that's implemented by 6 classes and 1 interface. Some of classes are abstract but most concrete.

All these are defined inside the android.widget package:

  1. BaseAdapter - A super class of common implementations for an android.widget.Adapter interface.It implements both ListAdapter and SpinnerAdapter interfaces.

  2. ArrayAdapter - A BaseAdapter child which uses an array of arbitrary objects as data source.

  3. CursorAdapter - An abstract BaseAdapter child used to expose data from android.database.Cursor to a ListView.

  4. ResourceCursorAdapter - An abtract CursorAdapter child that provides an easy way to create views defined in an xml file.

  5. SimpleAdapter - An easy BaseAdapter child used to map static data to views defined in an XML file.

  6. SimpleCursorAdapter - A ResourceCursorAdapter child that provides an easy way to map columns from a cursor to TextViews or ImageViews defined in an XML file.

  7. ThemedSpinnerAdapter - This is an interface that provides extensions over SpinnerAdapter and is capable of inflating drop-down views againts a different theme than normal views.