我在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();
}
答案 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循环中。