2011-10-28 3 views
1

Je ne sais pas exactement pourquoi, mais je ne peux pas appeler une méthode dans mon asynctask qui n'est pas statique.La méthode d'appel de mon asynctask doit être statique

protected void onPostExecute(String result) { 

     List<SingleEvent> thelist = PhotosActivity.parseJSONResponse(result); 


     PhotosActivity.refreshListView(thelist); 




    } 

La méthode dans mon activité:

public void refreshListView(List<SingleEvent> theList){//method that adds the List to the ListView after asyncTask is finished. 

     SingleEventAdapter adapter = new SingleEventAdapter(this, theList); 

     this.list.setAdapter(adapter); 
     adapter.notifyDataSetChanged(); 

    } 

Il dit que je devrais faire ma méthode statique, mais ce faisant que le code soit à l'intérieur des erreurs en disant qu'il ne peut pas être utilisé avec statique.

EDIT:

Ce qui suit est ma classe AsyncTask:

public class CallWebServiceTask extends AsyncTask<String, Object, String> {} 

ce n'est pas statique?

Répondre

2

Vous devez le faire (assurez-vous que votre classe AsyncTask est pas statique):

PhotosActivity.this.refreshListView(thelist); 
+0

oui Im l'erreur « aucune instance englobante de PhotosActivity » – Adam

+0

est votre classe à l'intérieur AsyncTask PhotosActivity? Si non, vous devez passer une référence à cette activité au constructeur de votre tâche asynchrone et y conserver une référence. – Cristian

+0

incroyable. Merci beaucoup! – Adam

Questions connexes