Android - Duda android, adaptador personalizado

   
Vista:

Duda android, adaptador personalizado

Publicado por marcos (2 intervenciones) el 13/05/2015 12:14:52
Hola a todos, estoy desarollando una aplicación en Android con Eclipse, tengo un pequño problema.
Quiero mostrar un listview personalizado, por lo tanto, creo un adaptador propio para ese listview.
Mi problema viene cuando quiero mostrar los siguiente datos:
-Puesto
-Nombre del corredor
-Equipo del corredor
-Tiempo
-Pais del corredor en tipo imagen
-Dorsal
Tengo una base de datos, en la cual, a través de una select, saco los datos anteriores.
El dato pais, es un tipo string, por ejemplo, muestra 'italia', o 'alemania' o 'polonia'
Lo que quiero mostrar es que a partir de este dato, coga, las imágenes que tiene el proyecto: res/drawable, para mostrar en forma de imagen el pais en cada caso.
El error está en la 2 línea
ImageView imagen=(ImageView)view.findViewById(R.id.imgpaisgeneral);
imagen.setImageResource(grupoArrayList3.get(position).getPaisgeneral());
Me dice que tiene que ser tipo int y yo lo que tengo es un String, ya que guardo el nombre del pais en la bd y lo que quiero es que coga segun ese nombre de la bd, me muestre la correspondiente imagen del pais
Dejo el código de toda la clase, para echar un vistazo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class MiAdaptador3 extends BaseAdapter{
 
 
	ArrayList<Clasificacion> grupoArrayList3;
	LayoutInflater lInflater;
 
	public MiAdaptador3(Context context,ArrayList<Clasificacion> grupoArrayList3) {
 
		lInflater=LayoutInflater.from(context);
		this.grupoArrayList3 = grupoArrayList3;
	}
 
	@Override
	public int getCount() {
 
		return grupoArrayList3.size();
	}
 
	@Override
	public Object getItem(int position) {
 
		return grupoArrayList3.get(position);
	}
 
	@Override
	public long getItemId(int position) {
 
		return position;
	}
 
	@Override
	public View getView(int position, View view, ViewGroup parent) {
		view=lInflater.inflate(R.layout.itemclasificaciones,null);
 
		TextView puestogeneral=(TextView)view.findViewById(R.id.txtpuestogeneral);
		puestogeneral.setText(grupoArrayList3.get(position).getPuestogeneral());
 
		TextView nombregeneral=(TextView)view.findViewById(R.id.txtnombregeneral);
		nombregeneral.setText(grupoArrayList3.get(position).getNombregeneral());
 
		TextView equipogeneral=(TextView)view.findViewById(R.id.txtequipogeneral);
		equipogeneral.setText(grupoArrayList3.get(position).getEquipogeneral());
 
		TextView tiempogeneral=(TextView)view.findViewById(R.id.txttiempogeneral);
		tiempogeneral.setText(grupoArrayList3.get(position).getTiempogeneral());
 
		ImageView imagen=(ImageView)view.findViewById(R.id.imgpaisgeneral);
		imagen.setImageResource(grupoArrayList3.get(position).getPaisgeneral());
 
		TextView dorsalgeneral=(TextView)view.findViewById(R.id.txtdorsalgeneral);
		dorsalgeneral.setText(grupoArrayList3.get(position).getDorsalgeneral());
 
		return view;
	}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda android, adaptador personalizado

Publicado por marcos (2 intervenciones) el 13/05/2015 16:43:59
Encontré la solución, espero que os sirva

1
2
3
ImageView imagen=(ImageView)view.findViewById(R.id.imgpaisgeneral);
int imageResource = context.getResources().getIdentifier(grupoArrayList3.get(position).getPaisgeneral(), "drawable",context.getPackageName());
imagen.setImageResource(imageResource);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

Duda android, adaptador personalizado

Publicado por xve (72 intervenciones) el 13/05/2015 21:12:59
Gracias por compartirlo Marcos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar