如何处理“保存”和“取消”按钮和后退键

时间:2011-02-14 01:59:30

标签: android

我想知道如何在我的应用中处理用户输入表单。 (实际预算精简版)。现在这就是我正在做的事情,但我不确定这是否是最好的做法:

我的大多数活动都有两个软按钮,用户输入:“保存”和“取消”。

“save”捕获用户输入,然后完成当前活动 “取消”放弃任何用户输入并完成当前活动 点击设备上的后退按钮与“保存”

相同

我仍然困扰我一点,后退按钮执行“保存并返回”功能。不熟悉Android手机的用户可能习惯使用网络浏览器,其中后退按钮的意思是“忘记此页面并返回上一页”。如果你在网上买东西并进入最后的“购买”页面,你不会期望后退按钮完成购买,是吗?但似乎这种行为是内置应用程序的工作方式,所以我不倾向于采用不同的方式。

无论如何,我查看了官方文档,我发现这个行为没有明确说明。有人能指出我到了正确的地方,或至少提供一些关于最佳实践的指导吗?

我看到的选择是:

  1. 按照我现在的方式做。
  2. 摆脱“保存”按钮并依靠知道返回等于保存的用户。
  3. 摆脱这两个按钮并从菜单键中提供取消功能。
  4. 顺便说一句,谷歌联系人应用程序提供“完成”和“恢复”按钮。我想“恢复”意味着取消;有区别吗?也许我应该将我的按钮标记为“完成”和“恢复”而不是“保存”和“取消”?在gmail中,菜单按钮提供“保存草稿”和“丢弃”选项。在我看来,如果我们在这里有一些一致性,我们会帮助用户。

    提前致谢。

4 个答案:

答案 0 :(得分:8)

  

但似乎这种行为是内置应用程序的工作方式,所以我不倾向于采用不同的方式。

我能想到的唯一内置应用程序是联系人应用程序,我发现用户体验很糟糕。我昨天只是在咒骂它,正如它发生的那样。

也许其他内置应用程序也会这样做,但我还没有遇到过,至少我不记得了。

  

无论如何,我查看了官方文档,我发现这个行为没有明确说明。

文档中没有此类用户体验指南。不幸的是

  

在我看来,如果我们在这里有一定的一致性,我们会帮助用户。

你不会得到我的任何争论。

就个人而言,我认为BACK按钮表现为“取消”,或者任何否定选择。例如,对话通常在Android上以这种方式表现。

如果您有现有用户,并且已与他们建立了通信(简报,支持Google小组等),我会对他们进行调查,看看他们的想法。最后,这是您的用户最想要的东西。

在紧要关头,让它可配置。理想情况下,对于这样的事情,有一个真正的正确答案,因此可配置性是没有意义的。但是,如果您的民意调查显示分割投票,并且缺少Android平台UX准则,则设置可能是适合您的解决方案。


更新:我写了一篇关于这个问题的blog post,因为我认为这是非常重要的,值得更多的散文。

答案 1 :(得分:3)

我强烈建议您遵循标准Android和应用程序使用的模型,其中编辑总是在适当的位置进行。也就是说,没有“保存”按钮 - 您正在进行的更改将在完成后有效保存。 (实现当然可能略有不同,但对于用户来说这不应该是可见的。)遵循该模型,您的按钮应该是“完成”和“恢复”的行。这有助于用户对正在发生的事情的心智模型,使活动不会变成“恢复”操作。

使用此数据编辑模型的一个原因是您将遇到更少的坏边缘情况。如果您尝试呈现用户明确保存的更传统的模型,那么用户可能从您的活动中取出的任何路径都可能导致数据丢失,从而导致您希望保护它们不受此影响,从而尝试显示对话框以确认他们确实想要丢失他们的数据。这是一场失败的战斗,你永远无法抓住所有的漏洞,你的用户体验将受到影响。 (例如,如果他们收到来电,这不是时候提出一个对话框,首先询问他们是否要保存他们的数据,也不管怎么说。)

首先,将您的基本模型编辑到位。这与标准平台使用的约定一致,并且这是在平台设计中有意选择的,因为总体而言,它导致更简单,更一致和易于理解的UX。设计您的UI流程以强调此模型,避免明确的“保存”操作。

答案 2 :(得分:1)

对我来说,如果没有保存选项,我总觉得'不安全'。例如,在GTask中,当您创建新任务时,点击“返回”(硬按钮)将保存这些内容并返回到prev屏幕。 BTW没有软按钮。但我总是对此感到沮丧。

对于您的应用,我认为在决定后退按钮的执行方式之前,您需要考虑两件事:

  1. 您的'保存'操作有多重要(就像下订单一样!)
  2. 您的用户是否希望取消内容?
  3. 显然,如果保存是长期处理和关键的,则必须采取明确的控制措施。 (并且不会保存);而对于第二点,我猜GTask认为笔记笔记应该快速而简单,而且应该感觉就像在纸上写字一样 - 一旦你写完就会保存。

    参考你所说的,回到网络浏览器后回去忘记一切。但与此同时,Google(例如Google Docs)也在进行自动,后台保存,当你回来时它并没有被“遗忘”。

答案 3 :(得分:0)

尝试确定用户按下时的通用操作会使这个问题变得更加困难(如果不是不可能的话)。

更简单的方法是考虑上下文,我看到两种主要情况:用户正在与对话框交互,用户正在与常规活动进行交互。

与对话框交互

如果用户在对话框中按下(例如日期时间选择器对话框),那是因为他不想看到该对话框或更改该信息。

在对话框中,用户不希望应用更改,直到他这样说(按“确定”)。

与活动交互

例如,用户正在查看应用程序提供的某些项目的详细信息(联系信息)。在一些更改后按回来可能意味着“现在将我带回联系人列表”。无论如何,这不是100%明确。因此,包括保存和放弃更改的选项(无论你喜欢什么)都可以是一个不错的选择。

我作为Android用户的想法

对话框中的行为简单明了。我想我们对此毫不怀疑。

在活动中,我习惯使用后退键来保存数据并将其发送到最后一个活动。每当我想丢弃我的更改时,我发现自己按下菜单按钮并找到要取消的按钮。

如果您想要更好的方法,请在取消或保存信息时将默认行为包含为首选项和/或显示祝酒词。

取消vs还原

在实践中,他们做同样的事情。取消,她应该取消你现在正在做的事情(编辑一些东西)。这应该/可以带你到你之前做的事情(列出活动)。

Revert会将您所看到的状态更改为开始进行更改之前的状态。这可能不会带您进行上一个活动。它可以简单地将UI更新为原始值。

联系人申请实验

  1. 编辑联系人时按向后将保存更改。
  2. 编辑联系人时按住主页将放弃更改