用于将部分记录信息保存到数据库中的Android UI模式

时间:2011-05-13 01:12:02

标签: android ui-patterns

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

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

因此,对于用户场景,例如当用户没有输入任何有关费用的内容时,只是添加了类别,我希望将其保存在数据库中。

类别保存可以在数据库中立即完成,方法是使用AsyncTask调用数据库帮助程序将值插入表中。

在平均时间里,我感到困惑的是,我应该放一个progressDialog,以便告诉用户我正在保存某些内容或者让他在其他字段中填充信息。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

此外,请注意,至少在最近的一次Google I / O 2011会话期间(http://www.youtube.com/googledevelopers提供了视频),Android用户界面工程师,包括撰写官方Twitter应用的人,推荐阻止用户界面(例如进度对话框)受到限制,因为过度使用会导致用户体验不佳,从而使应用感觉反应迟钝且使用缓慢。