SimpleAdapter, Texte et Image dans les spinner

J'ai un petit problème. Eh bien, permettez-moi tout d'abord de préciser ce à quoi je suis en train d'accomplir.
J'ai eu un spinner qui tire les ficelles d'un tableau stocké.
Comme vous n'avez donc pas besoin de le lire si:

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 et presque suffisante. Je voudrais ajouter une image à la Spinner. la RadioButton n'est pas nécessaire. Ainsi, le Spinner une fenêtre devrait apparaître, et de disposer d'une liste:

TEXTE *IMAGE* 
TEXTE2 *IMAGE* 
TEXTE3 *IMAGE* 

Jusqu'à présent, j'ai un custom SimpleAdapter.
Ici, est le Problème!!!!! :

Le texte est en place mais pas l'image.

Voici le code:

public class stageadapter extends SimpleAdapter {
private Context localContext;
private ArrayList<HashMap<String, Object>> localList;
public stageadapter(Context context, ArrayList<HashMap<String, Object>> 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;
}
}

J'ai l'intention d'utiliser une switch instruction pour définir des images différentes pour chaque nom. cependant je me suis arrêté ici jusqu'à ce que je peux obtenir une image à afficher.

Comment j'appelle:

ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("Name", "One");
map.put("Icon", R.drawable.icon);
list.add(map);
map = new HashMap<String, Object>();
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);

La réponse pour moi est dans les commentaires.

OriginalL'auteur Brian | 2010-09-10