2

所以我环顾四周,似乎如果我想制作某种加载指示器,我需要使用 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

}

4

3 回答 3

7

//先初始化进度条

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();
于 2013-09-20T05:44:24.410 回答
0

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

于 2013-11-13T00:37:15.857 回答
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();
于 2013-09-20T05:45:20.610 回答