每当用户单击任何菜单时,我都使用ProgressDialog
显示加载,并且工作正常。但是,当用户在菜单上单击两次时,ProgressDialog
没有停止,则它不断运行。
我该如何解决这个问题?
这是我的代码结构:
async void Grid_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
{
_pbr = Utilities.ProgressBar(this, "b").Show();
switch (e.Position)
{
case 0:
var result = await objHw.GetHomework(userid,log.LogInOrganizationID);
if (resultA.Any())
{
//code
}
else
{
_pbr.Hide();
Toast.MakeText(this, "Homework not available.", ToastLength.Short).Show();
}
_pbr.Hide();
break;
case 1:
case 2:
}
}
Utilities.ProgressBar
方法:public static ProgressDialog ProgressBar(Context context, string position)
{
var pbr = new ProgressDialog(context);
pbr.SetCancelable(false);
pbr.Indeterminate = true;
pbr.SetProgressStyle(ProgressDialogStyle.Spinner);
switch (position.ToLower())
{
case "c":
pbr.Window.SetGravity(GravityFlags.Center);
break;
case "b":
pbr.Window.SetGravity(GravityFlags.Bottom);
break;
}
pbr.SetMessage("please wait..");
return pbr;
}
载入中...
最佳答案
如果我在菜单/按钮上单击两次,ProgressDialog不会停止
当用户在菜单上单击两次时,避免为您的ProgressDialog
创建多个实例可以解决此问题:
public class Utilities
{
public static ProgressDialog pbr;
public static ProgressDialog ProgressBar(Context context, string position)
{
if(pbr == null)
{
pbr = new ProgressDialog(context);
}
pbr.SetCancelable(false);
...
pbr.SetMessage("please wait..");
return pbr;
}
}