2011-09-17 16 views
7

Digamos que he generado dinámicamente una cierta cantidad de LinearLayout, todas con etiquetas diferentes.¿Cómo puedo encontrar ViewByTag?

for (int i = 0; i <= 5; i++) 
{ 
     final LinearLayout LinLayBtn = new LinearLayout(this); 
     LinLayBtn.setTag("id"+String.valueOf(i)); 
     ... 

Y ahora tengo que acceder de alguna manera a este diseño por el número de etiqueta de un método diferente.

LinearLayout LinLayBtn = (LinearLayout)findViewWithTag("1"); 

¿Cuál sería la mejor manera de hacerlo?

Gracias!

+0

preferiría prefijar etiquetas con letras, no sé si 'identificador de etiqueta de número único' no está mal ... –

+0

hecho. :) pero aún así, ¿cómo debo acceder más adelante? – Roger

+0

Si creó las Vistas por qué necesita encontrarlas, ya las conoce. –

Respuesta

8

¿Lo has probado de esta manera y has encontrado un problema con él?

Tendrá que tomar esta línea

LinearLayout LinLayBtn = (LinearLayout)findViewWithTag("1"); 

coincida con el esquema de nombres que usó cuando se establece la etiqueta. Así que te gustaría algo como esto en su ejemplo:

LinearLayout LinLayBtn = (LinearLayout)findViewWithTag("id1"); 

Si necesita hacer muchas de estas búsquedas, aunque probablemente sería un mejor enfoque para almacenar la vista hace referencia en una matriz mientras se está creando tan no es necesario tener todas las llamadas a findView. O haz clic en @Muhammad sugirió y usa parent.getChild (índice i);

+0

http://developer.android.com/reference/android/view/View.html#findViewWithTag%28java.lang.Object%29 findViewWithTag() es un método real de la clase View ... – FoamyGuy

Cuestiones relacionadas