添加视图时不显示ProgressDialog

时间:2016-07-22 07:44:52

标签: android progressdialog

我在100多个循环的for循环中动态地将视图添加到线性布局。

现在我想在添加视图时显示ProgressDialog。我添加了progressdialogue,但它在视图实际出现在屏幕上之前就被驳回了。

屏幕上可见的视图是否有回调

这是我的代码

final ProgressDialog pd = new ProgressDialog(this);
pd.setMessage("Please wait...");
pd.setCancelable(false);
pd.show();

for (int i = 0; i < rowItemsListTemp.size(); i++) {
    View view;
    LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    view = inflater.inflate(R.layout.product_item_card, null);

    txt_pro_name = (TextView) view.findViewById(R.id.txt_pro_name);
    txt_pro_desc = (TextView) view.findViewById(R.id.txt_pro_desc);

    txt_pro_name.setText(rowItemsListTemp.get(i).getProName());
    txt_pro_desc.setText(Html.fromHtml(rowItemsListTemp.get(i).getProDesc()));
    ll_batcheslist.addView(view);
}

if (pd.isShowing()) {
    pd.dismiss();
}

2 个答案:

答案 0 :(得分:0)

您也可以尝试其他逻辑,但我可以建议:

 for (int i = 0; i =< rowItemsListTemp.size(); i++) {

   if(i=rowItemsListTemp.size()){
      if (pd.isShowing()) {
         pd.dismiss();
      }
   }else{
    View view;
    LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    view = inflater.inflate(R.layout.product_item_card, null);

    txt_pro_name = (TextView) view.findViewById(R.id.txt_pro_name);
    txt_pro_desc = (TextView) view.findViewById(R.id.txt_pro_desc);

    txt_pro_name.setText(rowItemsListTemp.get(i).getProName());
    txt_pro_desc.setText(Html.fromHtml(rowItemsListTemp.get(i).getProDesc()));
    ll_batcheslist.addView(view);
   }

}

答案 1 :(得分:0)

将它放在for循环的末尾,

if(i == rowItemsListTemp.size()-1){
       if (pd.isShowing()) {
          pd.dismiss();
       }
    }

然而,这似乎不是一个好的实现。

  

...在一个超过100个循环的for循环中。