- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想做的就是确保用户知道网络服务正在处理,这样他们就不会在它尝试工作时重复混合按钮。
EditText partnumber = (EditText)FindViewById(Resource.Id.itemNumber);
partnumber.FocusChange += (object sender, View.FocusChangeEventArgs e) =>
{
if (!e.HasFocus)
{
var pd = ProgressDialog.Show(this, "Processing", "Please Wait...", false);
var res = new InventoryApp();
res.partValidateCompleted += delegate { pd.Hide(); };
var isValid = res.partValidate(partnumber.Text);
if (isValid == "Not Found")
{
partnumber.Text = "";
partnumber.RequestFocus();
partqty.ClearFocus();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.SetTitle("Invalid Part");
builder.SetMessage("Part number does not exist in database. Please ensure you are entering the correct part number and try again");
builder.SetPositiveButton("OK", delegate { });
var dialog = builder.Create();
dialog.Show();
}
else
{
partdesc.Text = isValid;
}
}
};
如果我将 pd.Hide() 留在代码中,那么我将永远看不到进度对话框。如果我把它拿出来,我只会在 web 服务返回它的结果后看到进度对话框,然后因为我没有把它隐藏在任何地方而保持不变。如何在应用等待 partValidate 时显示它以及何时可以隐藏它?
最佳答案
从您的代码来看,partValidate()
方法似乎是同步的。由于此代码是在 UI 线程上执行的,因此应用程序的 UI 将在该方法调用期间被阻塞,这可以解释为什么在它完成之前您看不到任何 UI 更新。您可以通过在后台线程上运行调用来解决此问题,然后在需要更新 UI 时返回 UI 线程:
partnumber.FocusChange += (object sender, View.FocusChangeEventArgs e) =>
{
if (!e.HasFocus)
{
var pd = ProgressDialog.Show(this, "Processing", "Please Wait...", false);
var res = new InventoryApp();
res.partValidateCompleted += delegate { pd.Hide(); };
ThreadPool.QueueUserWorkItem(state =>
{
var isValid = res.partValidate(partnumber.Text);
RunOnUiThread(() =>
{
if (isValid == "Not Found")
{
partnumber.Text = "";
partnumber.RequestFocus();
partqty.ClearFocus();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.SetTitle("Invalid Part");
builder.SetMessage("Part number does not exist in database. Please ensure you are entering the correct part number and try again");
builder.SetPositiveButton("OK", delegate { });
var dialog = builder.Create();
dialog.Show();
}
else
{
partdesc.Text = isValid;
}
}
}
}
};
我有一篇博文 here解释了在 Android 应用程序的 Mono 上处理这种情况的各种方法。
关于android - MonoDroid 进度对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661142/
我有一个奇怪的布局问题。我用 java 开发了一个应用程序,想将它移植到 C#。移植源代码没问题,但布局是。我刚刚将 layout.xml(从 java 应用程序)的内容复制到 layout.axml
我的应用程序使用标准的 .NET RESX 方法(即 String.fr.resx、Strings.de.resx 等)本地化,在 Windows Phone 下运行良好。 我正在使用 MonoDro
我是 android 开发的新手,请原谅我的无知。我只是想弄清楚如何在我的 MonoDroid 应用程序中使用 SQLite,但我找到的每个教程都引用了我没有的 Mono.Data.Sqlite.dl
我目前正在启动一个项目,我想开发一个 Android 和桌面应用程序以使用 mono for android .我想将通用逻辑封装到一个共享库中,但目前我不确定如何容纳这两个框架。 谢谢! 最佳答案
如何使用 C# Monodroid 操作事件处理程序: m_listView.OnTouchEvent += OnTouchEvent; 它不像按钮或项目那样工作,它给出了一个错误: "Cannot
我创建了一个在 Android 设备上运行的简单网络服务器,它基本上响应在 Preview 11 之前工作的 Hello World。是否有任何重大变化导致它不再工作或者我做错了什么?应用程序崩溃 c
从这个示例开始:https://github.com/xamarin/monodroid-samples/blob/master/ApiDemo/Graphics/CameraPreview.cs 如
在具有不同屏幕尺寸和密度的不同设备上测试使用 MonoDroid 开发的应用程序时,我得到了一些非常有趣的结果。 我在我的项目中设置了以下(简化的)文件夹结构: 可绘制 图片.png drawable
Monodroid 中的这些 Android 功能有哪些等价物?找不到他们! Animation.ABSOLUTE Animation.RELATIVE_TO_SELF Animation.RELAT
ViewPager 是否可供 monodroid 开发人员使用?我看过很多像这样的 Android 教程:http://android-developers.blogspot.com/2011/08/
我只从事 Android 应用程序开发工作几天,所以请原谅我的无知。我正在尝试为 EditText 设置一个监听器,该监听器将在该字段失去焦点后触发。我在 java 中找到了一些示例,但找不到用于 m
我搜索了几个小时以找到解决此问题的有效解决方案,并设法创建了一个。我希望有人也可以使用这个解决方案。 最佳答案 private GestureDetector _gestureDetector; pr
我正在尝试安排一项服务在用户指定的时间每天运行。我正在使用时间选择器让用户控制服务在一天中的什么时间运行。 每次用户更改服务运行的时间时,我都会更新警报管理器。 这是我的代码: void Resche
我正在尝试发送一封邮件以及附加的多个文件,但是我无法将它们添加到邮件中。我这样进行: private void SendMail (List ToSend) { var Att
刚开始使用 Monodroid,目前正在研究 ListView。我在 ArrayAdapter 中添加了一个列表,我可以正确地看到我的前两个项目。但是,当我向列表中添加第三个元素时, ListView
使用 MonoTouch 完成并成功发布了我的第一个 iPhone 应用程序后,我现在正在寻找同一应用程序的 Android 版本。 MonoTouch 对我很有帮助,因为我仍然认为 Objectiv
我有一个图像(看起来像一个圆形的加载圆圈),我想围绕它自己的中心旋转。我看到很多代码建议将 PivotY 和 PivotX 设置为 0.5F 或图像的一半.两者都不起作用。经过大量试验和错误后,它确实
所以我一直在努力将一些值放入我覆盖的 OnSaveInstanceState 中的一个包中。我需要在 Activity 重启时保存一些类对象,这意味着它们必须是可分割的,这对于 Monodroid 来
听说可以用C#开发一个android软件。 (单体机器人) 但是当我研究它时,有人表示它运行起来会更慢。 你怎么看?这是真的吗?使用 C# 是否有效? 最佳答案 我们不知道。 说真的,如果有人可以将
我正在使用 MonoDroid 在 Visual Studio 2010 中开发一个 Android 应用程序。我已经很远了,能够在模拟器和 Android 设备上运行和调试我的应用程序。出于某种原因
我是一名优秀的程序员,十分优秀!