Greetings all. I've got a little problem...Well, let me first state what I'm trying to accomplish. I had a spinner that pulls strings out of a stored array. Like so, you dont need to read it though:
ArrayAdapter healthadapter = ArrayAdapter.createFromResource(
this, R.array.health, android.R.layout.simple_spinner_item);
mHealthSpin = (Spinner) findViewById(R.id.health_spin);
healthadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mHealthSpin.setAdapter(healthadapter);
Simple and almost sufficient. I would like to add an image to the spinner.. the radio button is not necessary. So the spinner should pop up and have a list:
TEXT *IMAGE* TEXT2 *IMAGE* TEXT3 *IMAGE*
So far I've got a custom SimpleAdapter. Here is the Problem!! : the text comes up but not the image. Heres the code:
public class stageadapter extends SimpleAdapter {
private Context localContext;
private ArrayList> localList;
public stageadapter(Context context,
ArrayList> list, int resource,
String[] from, int[] to) {
super(context, list, resource, from, to);
localContext = context;
localList = list;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (null == convertView) {
LayoutInflater inflater = (LayoutInflater) localContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.stagerow, null);
}
TextView name = (TextView) convertView.findViewById(R.id.stage_name);
name.setText((String)localList.get(position).get("Name"));
ImageView icon = (ImageView) convertView.findViewById(R.id.stage_icon);
icon.setImageResource(R.drawable.icon);
return convertView;
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
if (null == convertView) {
LayoutInflater inflater = (LayoutInflater) localContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.stagerow, null);
}
TextView name = (TextView) convertView.findViewById(R.id.stage_name);
name.setText((String)localList.get(position).get("Name"));
ImageView icon = (ImageView) convertView.findViewById(R.id.stage_icon);
icon.setImageResource(R.drawable.icon);
return convertView;
}
}
I plan to use a switch statement to set different images to each name. however i stopped here until i can get any image to show.
How i'm calling
ArrayList> list = new ArrayList>();
HashMap map = new HashMap();
map.put("Name", "One");
map.put("Icon", R.drawable.icon);
list.add(map);
map = new HashMap();
map.put("Name", "Two");
map.put("Icon", R.drawable.icon);
list.add(map);
mStageSpin = (Spinner) findViewById(R.id.stage_spin);
stageadapter adapter = new stageadapter(getApplicationContext(), list, R.layout.stagerow, new String[] {
"Name", "Icon"}, new int[] {
R.id.stage_name, R.id.stage_icon });
mStageSpin.setAdapter(adapter);
The answer for me is in the comments