I also wanted the drop down to look like the simple drop down but I wanted the list to look like the radio button list. A little digging through the Android source code and I found what I needed. Here is a stripped down version of my code.
public class KeyValueAdapter
extends ArrayAdapter<String>
{
private final Hashtable<String, CameraSource> _data;
private final String[] _keys;
public KeyValueAdapter(Context context, Hashtable<String, CameraSource> objects)
{
//To make the drop down a simple text box
super(context, android.R.layout.simple_spinner_item);
_data = objects;
//To make the drop down view a radio button list
setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// TODO; Do your own data massaging here to present the data in a ordered list.
//Assign hash keys with a position so that we can present and retrieve them
int i = 0;
_keys = new String[_data.size()];
for (final Enumeration<String> e = _data.keys(); e.hasMoreElements();)
{
_keys[i++] = e.nextElement().toString();
}
}
public int getCount()
{
return _data.size();
}
/**
* Returns the camera name for the camera in the specified position
*/
@Override
public String getItem(int position)
{
//TODO: return the value based on the position. This is displayed in the list.
}
/**
* Returns the cameraKey for the camera in the specified position
*/
public long getItemId(int position)
{
//TODO: Return an id to represent the item.
return position; // if this function is of no use to you simply return the position.
// if your identifier is a different return type then you can make
// your own method eg: public String getPromaryKey(int position) and
// call it where you need your identifier.
}
}

0 comments:
Post a Comment