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);
}
}
}