我正在尝试使用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()
被调用了值,并且对话框的方法被调用了。
答案 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();