2012-04-04 16 views
0

何かを計算するためにAsynctaskを実装することができましたが、doInBackgroundが実行されている間に進捗ダイアログも表示したいと思います。AsyncTaskのProgressDialog、NullPointerException

これは、これまでの私のコードです:

protected void onPreExecute() { 

    this.dialog.setMessage("Please wait"); 
    this.dialog.show(); 

    } 

    protected Integer doInBackground(Void... b) { 

      ........ 

    return price; 

    } 

    protected void onPostExecute(Integer price) { 

    if(dialog.isShowing()) { 
     dialog.dismiss(); 
    } 

    Toast.makeText(_ctx, price, Toast.LENGTH_LONG).show(); 

    } 

私はそれは、ダイアログだけでNULL

私はここで間違って何をやっているが含まれていることを述べているデバッガを実行?事前に感謝します

答えて

3

dialog(例:dialog = new ProgressDialog(_ctx))をインスタンス化する必要があります。代わりにthisを使用しての

0

getApplicationContext();

0

は、あなたの 'ActivityClassname.this' がonPreExecute()の 'this.dailog' に置き換えてみてください。ダイアログボックスはアクティビティコンテキスト上にありますが、ここでは 'これ'はAsyncTaskクラスを拡張するクラスを指します。

+0

次に、メインアクティビティでProgressDialogを宣言する必要がありますか? –

+0

ya ...ここではメインアクティビティで宣言する必要があります。進行状況バーをインスタンス化している間は、そのアクティビティのパラメータとして主アクティビティのコンテキストを単に渡すだけです。このようなものは、\tダイアログ=新しいProgressDialog(MainActivity.this); – RootCode

関連する問題