1. ホーム
  2. android

[解決済み] AsyncTaskでコンテキストを取得する

2023-05-01 08:16:26

質問

OpcionesというクラスのAsyncTaskでコンテキストを取得しようとしているのですが(このクラスはそのタスクを呼び出す唯一のものです)、どうすればいいかわかりません。

      protected void onPostExecute(Long result) {

    Toast.makeText(Opciones.this,"Subiendo la foto. ¡Tras ser moderada empezara a ser votada!: ", Toast.LENGTH_LONG).show(); 
}

しかし、それは私のために動作しません......それは言う。 "No enclosing instance of the type Opciones in scope"

どのように解決するのですか?

次のことを行う必要があります。

  • を使用したい場合 AsyncTask を使いたい場合は、それを他のクラスで拡張します。 マイカスタムタスク .
  • 新しいクラスのコンストラクタで コンテキスト

public class MyCustomTask extends AsyncTask<Void, Void, Long> {

    private Context mContext;

    public MyCustomTask (Context context){
         mContext = context;
    }

    //other methods like onPreExecute etc.
    protected void onPostExecute(Long result) {
         Toast.makeText(mContext,"Subiendo la foto. ¡Tras ser moderada empezara a ser votada!: ", Toast.LENGTH_LONG).show(); 
    }
}

そして、以下のようにしてクラスをインスタンス化します。

MyCustomTask task = new MyCustomTask(context);
task.execute(..);