所以我看了很多,似乎如果我想制作某种加载指示器,我需要使用AsyncTask。但是,ASyncTask似乎更适合于获取或插入数据。在我的例子中,我加载的活动有很多以编程方式生成的自定义视图。换句话说,它是所有UI活动 - 因此我无法使用ASyncTask,因为我无法在后台运行我的进程。我想显示一个进度对话框,以便用户知道正在加载新活动而不是仅仅查看黑屏。有人知道这样做的方法吗?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// start the progress dialog here
for(int i = 0; i < 50; i++) {
// generate some textviews...
TextView tv = new TextView(this);
tv.setText("textview # " + i);
}
// dismiss the progress dialog
}
答案 0 :(得分:3)
//首先初始化进度条
private static ProgressDialog progressDialog;
progressDialog = new ProgressDialog(this);
progressDialog.setCancelable(false);
progressDialog.setMessage("Loading");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setProgress(0);
//在updatePreUi()上显示进度条
progressDialog.show();
//关闭updatePostUi()
上的进度条progressDialog.dismiss();
答案 1 :(得分:0)
Handler h=new Handler();
ShowProgressDialog();
new Thread(new Runnable() {
@Override
public void run() {
h.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for(int i = 0; i < 50; i++)
{
// generate some textviews...
TextView tv = new TextView(this);
tv.setText("textview # " + i);
}
dismissProgressdialog();
}
});
}
}).start();
答案 2 :(得分:0)
您可以在设置活动的布局中使用两个叠加布局,然后在活动设置内容视图中使用顶部布局,并将动态视图添加到后面的布局中,完成时只需将布局的可见性设置为顶部走了。