Foros del Web » Programando para Internet » Android »

Devolucion resultado AsyncTask

Estas en el tema de Devolucion resultado AsyncTask en el foro de Android en Foros del Web. Hola a todos, os planteo mi problema, que de seguro sera una cosa un poco basica, pero llevo poco tiempo con android. Mi problema esta ...
  #1 (permalink)  
Antiguo 10/12/2012, 09:17
 
Fecha de Ingreso: diciembre-2012
Ubicación: España
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Devolucion resultado AsyncTask

Hola a todos, os planteo mi problema, que de seguro sera una cosa un poco basica, pero llevo poco tiempo con android. Mi problema esta en que nose como guardar los datos obtenidos en un asynctask, ya que estos me hacen falta falta mostrar unos puntos en un mapa. A continuacion os dejo el codigo por si le podeis echar un vistazo, ya que esto me ayudaria muchisimo.
Este es el main
<code>
public class MainActivity extends MapActivity {

private MapView mapView;
private MapController myMapController;
private List<Overlay> mOverlays;
private MyLocationOverlay mOverlayLocation;
public Consmapas markers;
public ArrayList<Negocio> listaComercios;
public String tipo;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tipo="3";


mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mOverlayLocation = new MyLocationOverlay(this, mapView);
myMapController = mapView.getController();
mOverlays = mapView.getOverlays();

GeoPoint centro = new GeoPoint((int)(37.77777 * 1E6), (int)(-3.789968 * 1E6));
myMapController.setCenter(centro);
myMapController.setZoom(14);

mOverlayLocation.enableMyLocation();
mOverlayLocation.enableCompass();
mOverlays.add(mOverlayLocation);

//Aqui estaria la ejecucion del asynctask y se devolveria
//el ArrayList<Negocio>

markers = new Consmapas(getResources().getDrawable(R.drawable.ma rcador_google_maps), this);
markers.addAllNegocios(listaNegocios);
mOverlays.add(markers);

mapView.postInvalidate();
}

@Override
protected boolean isRouteDisplayed() {
return false;
}

}
</code>
Y esta es la clase donde se hace el asynctask
<code>
public class Conexion extends AsyncTask<String, Void, ArrayList<Negocio>>{
ProgressDialog dialog;

protected ArrayList<Negocio> doInBackground(String... urls) {
String result = "";
Negocio negocioNuevo = null;
ArrayList<Negocio> listaNegocios = new ArrayList<Negocio>() ;

ArrayList<NameValuePair> categoria = new ArrayList<NameValuePair>();
categoria.add(new BasicNameValuePair("tipo", "3"));

//http post
InputStream is = null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"http://localhost/android/obteneranuncio.php");
httppost.setEntity(new UrlEncodedFormEntity(categoria));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("miError", "Error in http connection "+e);
}

// convert response to string
try{
BufferedReader reader = new BufferedReader(
new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();

result = sb.toString();
} catch(Exception e) {
Log.e("miError", "Error converting result "+e.toString());
}

//parse json data
try{
JSONArray jarray = new JSONArray(result);
for(int i=0 ; i<jarray.length() ; i++) {
JSONObject ob = jarray.getJSONObject(i);
String titulo = ob.getString("title");
String cate = ob.getString("catid");
int cat = Integer.parseInt(cate);
String coord = ob.getString("extra_fields_search");
String latitud = coord.substring(0, 9);
int lat = (Integer.parseInt(latitud)*1000000);
String longitud = coord.substring(10, 19);
int lon = (Integer.parseInt(longitud)*1000000);
GeoPoint point = new GeoPoint(lat, lon);
negocioNuevo = new Negocio(titulo, cat, point);
listaNegocios.add(negocioNuevo);
}
}catch(JSONException e){
Log.e("miError", "Error parsing data "+e.toString());
}
return listaNegocios;
}
}
</code>

Un saludo y gracias de antemano.

Etiquetas: activity, todo, apps
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:12.