Cómo acceder a las vistas dentro de TableLayout
En TableLayout
hay 9 Buttons
en un formato 3×3. ¿Cómo acceder al texto de estos botones mediante programación utilizando el id de TableLayout (no la ID del botón)?
- Cómo ocultar softkeyboad cuando se inicia la actividad en android?
- Scale2d escala de botón con libgdx
- cómo quitar los elementos del botón de radio programmaticaly
- ¿Cómo se ejecuta una actividad desde un botón de un widget en Android?
- Establecer BOTH, android: onClick Y OnTouchListener
- Android Toggle Button - Diseño de materiales
- Errores en Eclipse LogCat - Android
- Cómo quitar la frontera / sombra de los botones de lollipop
- Alineación del texto en el botón
- Establecer OnClick Listener en el botón dentro de la vista de lista en android
- Android, ¿qué sucede realmente después de cerrar una aplicación?
- Color del borde del botón de Android
- Ayuda de Android con cambiar el tipo de fuente del botón, ¿cómo?
Utilice algo como,
TableLayout tblLayout = (TableLayout)findViewById(R.id.tableLayout); TableRow row = (TableRow)tblLayout.getChildAt(0); // Here get row id depending on number of row Button button = (Button)row.getChildAt(XXX); // get child index on particular row String buttonText = button.getText().toString();
Formato 3×3: (El código para entender real puede ser diferente)
for(int i=0;i<3;i++) { TableRow row = (TableRow)tblLayout.getChildAt(i); for(int j=0;j<3;j++){ Button button = (Button)row.getChildAt(j); // get child index on particular row String buttonText = button.getText().toString(); Log.i("Button index: "+(i+j), buttonText); } }
Lo que puede hacer es encontrar la instancia de TableLayout
usando
TableLayout layout_tbl = (TableLayout) findViewById(R.id.layout_tbl);
A continuación, utilizando getChildCount()
puede iterar a través de cada hijo de TableLayout
y TableRow
, también mejor para comprobar View
utilizando instanceof
para que no obtenga ningún NPE
.
for (int i = 0; i < layout_tbl.getChildCount(); i++) { View parentRow = layout_tbl.getChildAt(i); if(parentRow instanceof TableRow){ for (int j = 0; j < parentRow.getChildCount(); j++){ Button button = (Button ) parentRow.getChildAt(j); if(button instanceof Button){ String text = button.getText().toString(); } } }
- Hora del formato de la clase de tiempo de Android
- ¿Cómo puedo grabar voz en Android mientras mantenga pulsado un botón?