1

我正在设计一个简单的费用应用程序,它可以跟踪我每月的费用。费用有名称、金额和类别。可以随意添加/删除类别。我将类别和费用存储在数据库中。

现在,我公开添加类别功能的方式是在“添加费用”活动中保留一个 editText 和一个名为“添加类别”的按钮。

所以,对于一个用户场景,比如用户没有输入任何关于费用的信息,而只是添加了类别,我希望它保存在数据库中。

通过使用 AsyncTask 调用数据库助手将值插入表中,可以立即在数据库中完成类别保存。

同时,我很困惑是否应该放置一个progressDialog,以便告诉用户我正在保存某些内容或让他在其他字段中填充信息。

将记录的部分信息保存到数据库中时,究竟是什么 UI 模式或通常遵循的策略。另外,如果将类别添加到数据库中会产生错误,我应该导航到不同的活动吗?

另外,一个附带的问题,我应该将“添加类别”按钮放在与添加费用不同的活动中吗?

4

1 回答 1

1

来自http://developer.android.com/guide/practices/design/responsiveness.html

可能长时间运行的操作,例如......数据库操作......应该在子线程中完成(或者在数据库操作的情况下,通过异步请求)。但是,这并不意味着您的主线程应该在等待子线程完成时阻塞......

由于描述了这篇文章的原始情况,因此可能不需要进度对话框。也许屏幕上正在保存的记录旁边可能有一些小的视觉标记,指示它的保存状态(可能是“新”、“保存”、“保存”、“问题/错误”之一)。如果保存时出错,如果保存记录对用户来说可能很重要,那么我肯定会让用户非常明显地知道存在问题,并为他们提供纠正这种情况的步骤。

另外,请注意,在最近的一次 Google I/O 2011 会议(有关视频可在http://www.youtube.com/googledevelopers获得)中,Android 用户界面工程师,包括编写官方 Twitter 应用程序的人,建议限制阻止 UI,例如使用进度对话框,因为过度使用会导致用户体验欠佳,使应用感觉反应迟钝且使用缓慢。

于 2011-05-13T03:00:35.400 回答