我有一个带有一些按钮的片段,当点击一个按钮时,它应该显示一个ProgressDialog,加载一个位图数组并在图库的片段中显示它,解除ProgressDialog。
但是ProgressDialog没有立即显示,它需要1到2秒的时间,它只是在我的画廊展示时闪烁。
点击后我这样做:
try{
progress = ProgressDialog.show(activity, "", "Loading images", true);
//load images
//show gallery
}catch(){
//...
}finally{
handler.sendEmptyMessage(0);
}
onCreate的我的处理程序:
handler = new Handler() {
public void handleMessage(Message msg) {
progress.dismiss();
}
};
我正在使用Android 3.1
Logcat显示任何内容:(
03-09 13:17:32.310: D/DEBUG(5695): before show()
03-09 13:17:32.350: D/DEBUG(5695): after show()
答案 0 :(得分:1)
文档没有说明setIndeterminate(boolean),所以我不确定。但我在我的应用程序中使用它,它可以工作:
ProgressDialog fDialog = new ProgressDialog(your-context);
fDialog.setMessage(your-message);
fDialog.setIndeterminate(true);
// fDialog.setCancelable(cancelable);
fDialog.show();
你能尝试吗?
答案 1 :(得分:1)
您正在主UI线程上加载图片 - 您应该在后台进程中执行此操作,因为它可能会导致您的用户界面无响应(并导致您的ProgressDialog
在错误的时间出现。)< / p>
您应该考虑使用AsyncTask来在后台加载图片。
在ProgressDialog
中显示AsyncTask.onPreExecute
,在AsyncTask.doInBackground
中加载图片并关闭AsyncTask.onPostExecute
中的对话框。