Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/05/2016, 11:32
jlopezisern
 
Fecha de Ingreso: mayo-2014
Mensajes: 45
Antigüedad: 10 años, 6 meses
Puntos: 0
Problema con AsyncTask, processFinish y el hilo principal.

A ver si alguien puede ayudarme, me explico: Tengo una actividad con dos fragment, en uno van los datos generales que obtengo de una base de datos y en el otro el mapa de situación.
Los datos los obtengo de una base de datos con una clase que extiende de AsyncTask en onPostExecute(String nombre). Una vez que he obtenido los datos (en este caso el nombre), este lo tengo que pasar a la actividad principal a:
public String getMyNombre() {
return nombreArte;
}
Y desde ahí recogerlo en el fragment con:
String nombreArte = activityId.getMyNombre();
((TextView) rootView.findViewById(R.id.nombreArteGeneral)).set Text(nombreArte);
Para eso paso el nombre de onPostExecute con:
delegate.processFinish(nombre);
y lo recojo en la Actividad con:
public void processFinish(String outnombre){
nombreArte=outnombre;
Toast.makeText(this, nombreArte, Toast.LENGTH_LONG).show();
}
El problema me surge en como pasar la variable (nombreArte) de este método (processFinish) a getMyNombre() pues el hilo principal ya se ha ejecutado y la variable nombreArte en getMyNombre() no existe, aunque en processFinish sí, de echo el Toast funciona perfectamente.
Resumiendo:
Quiero pasar el valor de la variable nombreArte de:
public void processFinish(String outnombre){
nombreArte=outnombre;
}
a:
public String getMyNombre() {
return nombreArte;
}
Para recogerla en el fragment con:
String nombreArte = activityId.getMyNombre();
((TextView) rootView.findViewById(R.id.nombreArteGeneral)).set Text(nombreArte);
Y lo que no funciona es que en:
public String getMyNombre() {
return nombreArte;
}
O pasarla y recogerla en el fragment de cualquier otra manera que se os ocurra.
Si alguien puede ayudarme se lo agradecería mucho, pues ando muy despistado.