Android - Moverse a través de las filas de un tableLayout

   
Vista:
Imágen de perfil de Juan Jose

Moverse a través de las filas de un tableLayout

Publicado por Juan Jose (12 intervenciones) el 25/04/2016 13:52:57
Hola , estoy creando un tablelayout, en el que dando funcionalidad a unos botones , se añadan una fila.

hasta aqui todo correcto.

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
private void addfila() {
        //creamos una nueva fila
        fila = new TableRow(getContext());
 
        //añadimos los componentes que forman la fila
        edreferencia = new EditText(getContext());
        eddescripcion = new EditText(getContext());
        sprequisito = new Spinner(getContext());
        sptipo = new Spinner(getContext());
        cbseleccion = new CheckBox(getContext());
 
        //adaptador de array
        ArrayAdapter<CharSequence> adp = ArrayAdapter.createFromResource(getContext(),     R.array.valores_noconformidad, R.layout.layout_spinner);
        //y cargamos
        sprequisito.setAdapter(adp);
 
 
        //añadimos a la tabla
        fila.addView(edreferencia);
        fila.addView(eddescripcion);
        fila.addView(sprequisito);
        fila.addView(sptipo);
        fila.addView(cbseleccion);
        //y la añadimos a la vista
 
        tabla.addView(fila);
 
        Toast.makeText(getContext(), "fila añadida", Toast.LENGTH_SHORT).show();
    }

el problema es que quisiera que mediante un metodo, recorriera dichas filas, y en una de las columnas (columna5) comprobar un checkbox si esta selecionado o no. y devuelva el num de check seleccionados

he probado con este codigo , pero no se como cada vez que se ejecute el bucle, saltar a la siguente fila.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void deletefila() {
        //contador de seleccion
        int seleccion = 0;
        //numero de filas ,(la primera es el titulo y no se cuenta
        int datos = (tabla.getChildCount()) - 1;
        //recorremos las filas 
        for (int i = 1; i < tabla.getChildCount(); i++) {
 
            //comprobamos si el cb esta seleccionado; el checkbox esta en la columna 5
            cbseleccion = (CheckBox) fila.getChildAt(4);
 
            //checkbox sacamos valor si check o no
            boolean dato=cbseleccion.isChecked();
 
            //comprobamos si el checkbox esta seleccionado
            if (dato==true)
                seleccion++;
 
        }
        Toast.makeText(getContext(), "total seleccionados " + seleccion + " de registros " + datos, Toast.LENGTH_SHORT).show();
    }

se que dentro del for deberia de aumentar la fila en 1para pasar a la siguente,pero no encuentro el metodo.

Alguien me puede ayudar, gracias
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

Moverse a través de las filas de un tableLayout

Publicado por Yamil Bracho (68 intervenciones) el 25/04/2016 16:57:38
Hola,
te compila este codigo ? Faltan declarar variables. Te queadria algo como :

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
private void deletefila() {
 
        //contador de seleccion
 
        int seleccion = 0;
 
        //numero de filas ,(la primera es el titulo y no se cuenta
        int datos = (tabla.getChildCount()) - 1;
 
        //recorremos las filas 
 
        for (int i = 1; i < tabla.getChildCount(); i++) {
        	TableRow fila = tabla.getChildAt(i);
 
 
            //comprobamos si el cb esta seleccionado; el checkbox esta en la columna 5
 
            cbseleccion = (CheckBox) fila.getChildAt(4);
 
            //checkbox sacamos valor si check o no
 
            boolean dato=cbseleccion.isChecked();
 
            //comprobamos si el checkbox esta seleccionado
 
            if (dato==true)
                seleccion++;
 
        }
 
        Toast.makeText(getContext(), "total seleccionados " + seleccion + " de registros " + datos, Toast.LENGTH_SHORT).show();
 
    }
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 Juan Jose

Moverse a través de las filas de un tableLayout

Publicado por Juan Jose (12 intervenciones) el 27/04/2016 08:43:38
1
TableRow fila = tabla.getChildAt(i);

esta linea me faltaba, me estaba volviendo loco, siempre me situaba en la misma linea.

gracias
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