2011-05-13 47 views
1

我正在设计一个简单的费用应用程序,用于跟踪每个月的费用。费用有名称,金额和类别。可以随意添加/删除类别。我将类别和费用存储在数据库中。用于将部分记录信息保存到数据库的Android UI模式

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

因此,对于像用户没有输入任何有关费用的用户场景,但只是添加类别,我希望它被保存在数据库中。

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

在此期间,我很困惑应该放置一个progressDialog,以告诉用户我正在保存某些东西或让他在其他字段中填充信息。

在将记录的部分信息保存到数据库中时,究竟是UI模式还是常见的策略。另外,如果我只是导航到不同的活动,如果将类别添加到数据库中会产生错误?

此外,一个侧面问题,我应该把“添加类别”按钮放在与添加费用不同的活动中吗?

+0

我不认为添加一个类别需要在asynctask。它应该如此之快以至于不能被用户察觉。编号只需将它添加到主线程,并立即提醒用户是否失败。显示进度,然后解散等开销实际上会让应用程序看起来更慢。 – jkhouw1 2011-05-13 01:43:15

回答

1

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

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

由于本文的原始状况已经描述,所以可能不需要进度对话框。也许屏幕旁边可能会有一些小的可视标记保存在记录中,表明它是保存状态(可能是“新建”,“保存”,“保存”,“问题/错误”)之一。在保存错误的情况下,如果保存记录对用户来说可能很重要,那么我肯定会非常明显地向用户表明存在问题,并为他们提供补救措施。另外,请注意,Android用户界面工程师(包括撰写Twitter官方应用程序的人员)至少在最近一次Google I/O 2011会议期间(其视频的可用空间为http://www.youtube.com/googledevelopers)建议阻止UI,例如进度对话框会受到限制,因为它们的过度使用可能会导致用户体验不理想,从而导致应用程序感觉无响应并且使用速度很慢。

相关问题