2017-01-04 5 views
1
class AddStudent extends AsyncTask<String, Void, ResultData> { 

private ProgressDialog pDialog; 

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    pDialog = new ProgressDialog(AddStudentActivity.this); 
    pDialog.setMessage("Adding Product.."); 
    pDialog.setIndeterminate(false); 
    pDialog.setCancelable(true); 
    pDialog.show(); 
} 

private Context context; 
    //CHANGE HERE....ADD PARAMATER 

TextView tv_msg; 
public AddStudent(Context context, TextView tv_msg) { 
    this.context = context; 
    this.tv_msg = tv_msg; 

} 

私は(AddStudentActivity.this);AsyncTask onPreExecute新しいprogressdialog

エラーでエラーが発生している= com.blablablabla.AddStudentActivityは、外側のクラスではありません。

問題:?
どうすればこの問題を解決できますか。

+0

まだ作成されていないアクティビティのコンテキストは使用できません。 – akash93

答えて

1

あなたはあなたの全体のコードを投稿していないので、これは憶測のビットですが、ここで行く:

おそらくあなたはAddStudent AsyncTaskのために別のファイルを作成したり、あなたAddStudentActivityクラスの外にそれを入れています。 AddStudentActivity.thisを使用するにはAddStudentActivityAddStudentを内部クラスにする必要があります。ここ

さらに詳しい情報:Android: AsyncTask recommendations: private class or public class?

1

pDialog =新しいProgressDialog(AddStudentActivity.this)。

pDialog =新しいProgressDialog(コンテキスト)に

変化。

その仕事。

2

asynctaskがアクティビティのネストされたクラスでない場合は、コンテキストをコンストラクタのパラメータとして設定/追加する必要があります。それは活動の一部であるのTextView

class AddStudent extends AsyncTask<String, Void, ResultData> { 

    private ProgressDialog pDialog; 
    private Context context; 

    public AddStudent(Context context) { 
     this.context = context; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(context) ; 
     pDialog.setMessage("Adding Product.."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
    } 
} 


または、asynctaskがアクティビティのネストされたクラスである場合は、必要な処理を行うことができます。より多くのあなたは、以下の例では読むことができます:
ProgressDialog and AsyncTask

0

エラー= com.blablablabla.AddStudentActivityは、囲むクラスではありません。

上記のエラーは、別の別のクラスでアクティビティコンテキストを使用しようとすると発生します。 メモリリークが発生すると、これはあなたにとっても有害です。

pDialog = new ProgressDialog(context);

関連する問題