PDA

Ver la Versión Completa : Asignar Imagenes o Strings indirectamente


Esteban_
12/04/13, 10:29:57
Hola a todos,
esto es algo complicadillo pero como aqui hay gente que sabe mucho seguro que, si es posible, alguien dara con la solucion ;-). Se trata de lo siguiente:

para usar un string declarado en String.xml se hace asi:

textView1.getText(R.string.TextView1);

o para una imagen:

image1.setImageResource(R.drawable.image1);

Hasta ahi todo bien. El problema viene cuando quiero declarar un número muy alto de strings o imagenes. Entonces querria meter en vez de la direccion estatica, el valor de una variable. como la direccion tiene que ser un int, lo hice asi:

int image = R.drawable.image1;
image1.setImageResource(imagen);

y funcionó. Pero al hacer el siguiente paso de lo que quería hacer:

for (int n=1;i<10;i++){
int image = Integer.parseInt("R.drawable.seatservice"+n);
image1.setImageResource(imagen);
}

no funciona. Tampoco me sorprendio es obvio que no iba a funcionar, pero no veo obvia la solución.

Si alguien sabe como hacerlo, le agradecería mucho que me echase un cable.

Gracias

un saludo

mocelet
12/04/13, 10:35:04
Mete los identificadores en un array y ya puedes manejarlos en un bucle como quieras

Esteban_
12/04/13, 10:35:47
se me olvidó decir que también lo he intentado escribiendo la direccion en una base de datos (campo del tipo int) y cogiendo el valor y tampoco funciona. La base de datos va bien, si cojo el valor del campo y lo meto en un TextView, aparece la direccion correctamente, es solo cuando uso el contenido del campo como dirección de la imagen cuando no aparece nada. :cry:

Esteban_
12/04/13, 10:37:21
gracias por la respuesta tan rapida @mocelet.

Un array definido en String.xml no?

Lo voy a intentar a ver que tal

mocelet
12/04/13, 10:46:16
Me refería a un int[] normal y corriente que especifique todos los R.cosas que necesites recorrer en bucle

kriogeN
12/04/13, 11:08:00
Prueba con esto dentro del for

int image = getResources().getIdentifier("seatservice"+n, "drawable", getPackageName());

mocelet
12/04/13, 11:09:30
Igual leí mal la pregunta y te referías a esto: http://www.htcmania.com/showthread.php?t=356917