MainActivity.ce n'est pas une classe englobante AsyncTask

Je suis en train de créer un AsyncTask pour la 1ère fois, mais je n'ai pas beaucoup de chance.

Mon AsyncTask besoins pour obtenir des informations à partir d'un serveur, puis ajouter de nouvelles mises en page à la page principale pour afficher cette information.

Tout semble être plus ou moins claire, mais, le message d'erreur "MainActivity n'est pas une classe englobante" me dérange.

Personne d'autre ne semble avoir ce problème, donc je pense que je manque quelque chose de très évident, je ne sais pas ce que c'est.

Aussi, je ne suis pas sûr si j'ai utilisé de la bonne façon de le contexte, et parce que mon application ne se compile pas, donc je ne peux pas le tester.

Votre aide est très appréciée.

Voici mon code:

public class BackgroundWorker extends AsyncTask<Context, String, ArrayList<Card>> {
    Context ApplicationContext;

    @Override
    protected ArrayList<Card> doInBackground(Context... contexts) {
        this.ApplicationContext = contexts[0];//Is it this right way to get the context?
        SomeClass someClass = new SomeClass();

        return someClass.getCards();
    }

    /**
     * Updates the GUI before the operation started
     */
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    /**
     * Updates the GUI after operation has been completed
     */
    protected void onPostExecute(ArrayList<Card> cards) {
        super.onPostExecute(cards);

        int counter = 0;
        //Amount of "cards" can be different each time
        for (Card card : cards) {
            //Create new view
            LayoutInflater inflater = (LayoutInflater) ApplicationContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            ViewSwitcher view = (ViewSwitcher)inflater.inflate(R.layout.card_layout, null);
            ImageButton imageButton = (ImageButton)view.findViewById(R.id.card_button_edit_nickname);

            /**
             * A lot of irrelevant operations here
             */ 

            //I'm getting the error message below
            LinearLayout insertPoint = (LinearLayout)MainActivity.this.findViewById(R.id.main);
            insertPoint.addView(view, counter++, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        }
    }
}

OriginalL'auteur Vlad Spreys | 2013-01-02