2010-11-10 32 views
8

Estoy tratando de modificar dos TextViews exactamente de la misma manera. Pensé que podía darles la misma identificación y con los métodos findViewById() y setText() cambiar esas TextViews en dos líneas. Pero parece que solo se modificó un TextView.Dos elementos XML con el mismo ID

¿Hay alguna manera de hacerlo? O tengo que hacer diferentes identificadores para cada elemento, obtener cada elemento mediante el método findViewById() y configurar su texto?

+0

¿Por qué harías esto? – Macarse

+1

Android! = JQuery – Felix

+0

¿Por qué haría esto? Tengo dos LinearLayouts en el widget que son de construcción diferente (diferentes valores de gravedad de los elementos). Pensé que sería más fácil hacer dos diseños diferentes y hacer uno visible y el otro fuera cuando sea necesario. – Seraphis

Respuesta

5

Los identificadores de vista son enteros simples, por lo que puede simplemente tener una matriz de identificadores que desee cambiar. Por ejemplo:

int[] ids = { R.id.text1, R.id.text2, ... }; 
for (int id: ids) { 
    TextView tv = (TextView) findViewById(id); 
    tv.setText("Hello, World!"); 
} 

Por supuesto, sería mejor tener ids como un miembro de la clase static final. Es decir .:

public class MyActivity extends Activity { 
    private static final int[] textViewIDs = { 
     R.id.text1, 
     R.id.text2, 
     ... 
    } 
    ... 
} 
+0

Veo que es la única solución para mi problema. Gracias – Seraphis

0

Debe definir dos identificadores diferentes. No hay forma de tener un widget con el mismo ID que otro, ya que ambos son dos widgets diferentes e independientes.

0

Una identificación es única para cada vista. Por lo tanto, no se puede compartir. Lo que puede hacer es tener ambas identificaciones de vista captadas en el código y tener condiciones para modificar el texto. Al igual que si (id == id1 & & id == id2), edite el texto.

+0

¿A qué te refieres con "tener ambos identificadores de vista captados en el código"? ¿Puedes explicarme qué TextView se modificaría en esa condición? – Seraphis

Cuestiones relacionadas