0

我已经设法实现了一个 Asynctask 来计算一些东西,但我也想在 doInBackground 运行时显示一个进度对话框。

到目前为止,这是我的代码:

    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

我在这里做错了什么?提前致谢

4

3 回答 3

3

您需要实例化您的dialog(例如dialog = new ProgressDialog(_ctx));

于 2012-04-04T13:28:39.023 回答
0

而不是使用this尝试getApplicationContext();

于 2012-04-04T13:29:58.833 回答
0

将 onPreExecute() 中的 'this.dailog' 替换为您的 'ActivityClassname.this'。因为对话框在您的活动上下文中,但这里的“this”是指您的扩展 AsyncTask 类的类。

于 2012-04-04T13:32:35.153 回答