entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Mostrar columnas dinámicas en tablelayout

Estoy usando esta tarea asíncrona y mi duda es cómo puedo poner columnas de forma que mi tabla quede TIENDA TOTAL y luego todas las tallas que estén disponibles del producto que se buscó?:

private class GetDatos extends AsyncTask<String, Void, Void> {

        final String SOAP_ACTION = "http://tempuri.org/IServicioTallasAndroid/ListadoTallasA";
        final String METHOD = "ListadoTallasA";
        final String NAMESPACE = "http://tempuri.org/";
        final String ENDPOINTWS = "http://192.1.1.82/SP_Catalogos/ServicioTallasAndroid.svc";

        protected Void doInBackground(String... params) {
            listaTodo.clear();
            SoapObject userRequest = new SoapObject(NAMESPACE, METHOD);
            userRequest.addProperty("estilo", params[0]);

            xmodelo = params[0].toString();

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.setOutputSoapObject(userRequest);
            envelope.dotNet = true;

            try {
                HttpTransportSE androidHttpTransport = new HttpTransportSE(ENDPOINTWS);
                androidHttpTransport.debug = true;
                androidHttpTransport.call(SOAP_ACTION, envelope);

                SoapObject res = (SoapObject) envelope.bodyIn;
                SoapObject t = (SoapObject) res.getProperty("ListadoTallasAResult");

                for (int i = 0; i < t.getPropertyCount(); i++) {
                    SoapObject bank = (SoapObject) t.getProperty(i);

                    String estilo = bank.getProperty("Estilo").toString();
                    String tienda = bank.getProperty("Tienda").toString().replaceAll(" ", "");
                    String tallas = bank.getProperty("Tallas").toString();
                    String cantidad = bank.getProperty("Cantidad").toString();

                    p = new Productos(estilo, tienda, tallas, cantidad);

                    listaTodo.add(p);

                }
                //respuesta = "Estilo: " + cantidad + "\nTienda: " + costo + "\nTallas: " + descripcion/*envelope.getResponse().toString()*/;

            } catch (Exception e) {
                e.printStackTrace();

            }

            return null;
        }

        protected void onPostExecute(Void result) {
            super.onPostExecute(result);

            tl = (TableLayout) findViewById(R.id.miTableLayout);
            filas =new TableRow(getApplicationContext());

            TableRow.LayoutParams layoutFila=new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
            TableRow.LayoutParams layoutFecha=new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
            TableRow.LayoutParams layoutMuestra=new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
            TableRow.LayoutParams layoutResultado=new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);

            lblTienda = new TextView(getApplicationContext());
            lblCantidad = new TextView(getApplicationContext());
            lblTallas = new TextView(getApplicationContext());

            lblTienda.setText("Tienda");
            lblCantidad.setText("Cantidad");
            lblTallas.setText("Talla");

            lblTienda.setBackgroundResource(R.drawable.tabla_celda_cabecera);
            lblCantidad.setBackgroundResource(R.drawable.tabla_celda_cabecera);
            lblTallas.setBackgroundResource(R.drawable.tabla_celda_cabecera);

            lblTienda.setLayoutParams(layoutMuestra);
            lblCantidad.setLayoutParams(layoutMuestra);
            lblTallas.setLayoutParams(layoutMuestra);

            if(lblTallas.getParent()!=null
                    || lblCantidad.getParent()!=null
                    || lblTienda.getParent()!=null) {
                ((ViewGroup) lblTienda.getParent()).removeView(lblTienda);
                ((ViewGroup) lblCantidad.getParent()).removeView(lblCantidad);
                ((ViewGroup) lblTallas.getParent()).removeView(lblTallas);
            }

            filas.addView(lblTienda);
            filas.addView(lblCantidad);
            filas.addView(lblTallas);
            for (int z = 0; z < listaTodo.size(); z++) {

                //filas =new TableRow(getApplicationContext()); // Si, necesita contexto
                filas.setLayoutParams(layoutFila);

                tvTiendas = new TextView(getApplicationContext());
                tvCantidad = new TextView(getApplicationContext());
                tvTallas = new TextView(getApplicationContext());

                tvTiendas.setText(listaTodo.get(z).getTienda());
                tvTiendas.setGravity(Gravity.LEFT);
                tvTiendas.setPadding(0, 0, 5, 0);
                tvTiendas.setLayoutParams(layoutFecha);

                tvCantidad.setText(listaTodo.get(z).getCantidad());
                tvCantidad.setPadding(240, 0, 5, 0);
                tvCantidad.setLayoutParams(layoutMuestra);

                ArrayList<String>tallas = new ArrayList<String>();

                tallas.add(listaTodo.get(z).getTallas());

                tl.addView(filas);

                for(int j = 0; j < tallas.size(); j++) {
                    if(tvTallas.getParent()!=null
                            || tvTiendas.getParent()!=null
                            || tvCantidad.getParent()!=null) {
                        ((ViewGroup) tvTiendas.getParent()).removeView(tvTiendas);
                        ((ViewGroup) tvCantidad.getParent()).removeView(tvCantidad);
                        ((ViewGroup) tvTallas.getParent()).removeView(tvTallas);
                    }else {
                        tvTallas.setText(tallas.get(j));
                        tvTallas.setLayoutParams(layoutMuestra);
                        tvTallas.setPadding(300, 0, 0, 0);

                        filas.addView(tvTiendas);
                        filas.addView(tvCantidad);
                        filas.addView(tvTallas);
                    }

                }

                tvTiendas.setBackgroundResource(R.drawable.tabla_celda);
                tvCantidad.setBackgroundResource(R.drawable.tabla_celda);
                tvTallas.setBackgroundResource(R.drawable.tabla_celda);
}
}
}

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta