带有ProgressDialog和Progress Bar的AsyncTask

时间:2011-07-25 17:37:50

标签: android android-asynctask progressdialog

我正在尝试使用AsyncTask加载一个确定长度的文件。我的AsyncTask看起来像这样:

protected void onPreExecute() {
    dialog = ProgressDialog.show(MyActivity.this, null, "Loading", false);
}


protected void onProgressUpdate(Integer... values) {
    if (values.length == 2) {
        dialog.setProgress(values[0]);
        dialog.setMax(values[1]);
    }
}

在我的doInBackground()实施中,我在加载循环中调用publishProgress(bytesSoFar, maxBytes);,在onPostExecute()调用dialog.dismiss()

但是,除了不确定的微调器之外,我无法让ProgressDialog显示任何东西。我想看到一个水平进度条,显示加载发生时的进度。我已经调试过,可以看到onProgressUpdate()被调用了值,并且对话框的方法被调用了。

2 个答案:

答案 0 :(得分:28)

在显示样式.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

之前,将样式添加到进度对话框中

答案 1 :(得分:9)

onPreExecute()

中使用此代码
 ProgressDialog prog;
 prog = new ProgressDialog(ctx);
 prog.setTitle(title);
 prog.setMessage(msg);       
 prog.setIndeterminate(false);
 prog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
 prog.show();
相关问题