注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

悠游自在

似水流年,悠游天地,自在我心

 
 
 

日志

 
 
 
 

遇到了ProgressDialog不显示的问题  

2013-09-13 16:19:17|  分类: IT技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
原代码如下,ProgressDialog却显示不出来,
public void LoadingAction()
{
StartJob ();
WaitForJobDone ();
LoadMoreData();
JobDone ();
cardListAdapter.NotifyDataSetChanged ();
btnLoading.Text = "查看更多";
}
protected void WaitForJobDone()
{
if (BL.DataManager.IsUpdating) {
if (progress == null) {
progress = ProgressDialog.Show (this, "Loading", "Please Wait...", true); 
} else {
progress.Show ();
}
} else {
if (progress != null)
progress.Hide();
PopulateTable();
}
}

protected void StartJob()
{
DataManager.IsUpdating = true;
HandleUpdateStarted (null, EventArgs.Empty);
}

protected void JobDone()
{
HandleUpdateFinished (null, EventArgs.Empty);
DataManager.IsUpdating = false;
}
到网上搜了搜,得知ProgressDialog Show了以后,费时的操作得放到线程里,否则不会显示,因此将其改成如下,解决问题:
public void LoadingAction()
{
StartJob ();
WaitForJobDone ();
hdlLoaded.PostDelayed (delegate {
LoadMoreData();
JobDone ();
cardListAdapter.NotifyDataSetChanged ();
btnLoading.Text = "查看更多";
}, 200);
}
貌似PostDelayed的延时时间还不能太短,我试过20、200、2000,结果20就不行,ProgressDialog根本没显示,200就可以了。

  评论这张
 
阅读(1484)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018