在使用多个以编程方式创建的视图加载新视图时,如何显示进度对话框?

时间:2013-09-20 05:03:15

标签: android progressdialog

所以我看了很多,似乎如果我想制作某种加载指示器,我需要使用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

}

3 个答案:

答案 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)

您可以在设置活动的布局中使用两个叠加布局,然后在活动设置内容视图中使用顶部布局,并将动态视图添加到后面的布局中,完成时只需将布局的可见性设置为顶部走了。