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

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

在我的大部分活动中,我有两个软button,用户input:“保存”和“取消”。

“保存”捕获用户input,然后完成当前活动“取消”放弃任何用户input并完成当前活动按下设备上的后退button与“保存”

后退button执行“保存并返回”function,我仍然有点困扰。 刚接触android手机的用户可能已经习惯了网页浏览器,后退button的意思是“忘记这个页面并回到上一页”。 如果你在网上买东西,而且你到了最后的“购买”页面,你不会期望后退button来完成购买,对吗? 但似乎这种行为是内置应用程序的工作方式,所以我不倾向于做不同的事情。

无论如何,我已经浏览了官方文档,我找不到明确阐述的这种行为。 有人能指点我到正确的地方,或者至less提供一些最佳实践的指导吗?

我看到他们的select是:

  1. 按照我现在这样做的方式来做。
  2. 摆脱“保存”button,并指望知道后退等于保存的用户。
  3. 摆脱这两个button,并从菜单键提供取消function。

顺便说一句,谷歌联系人应用程序提供button“完成”和“恢复”。 我想“恢复”意味着取消; 有没有区别? 也许我应该把我的button标记为“完成”和“恢复”,而不是“保存”和“取消”? 在Gmail中,菜单button提供了select“保存草稿”和“放弃”。 在我看来,如果我们在这里有一些一致的话,我们会帮助用户。

提前致谢。

Solutions Collecting From Web of "如何处理“保存”和“取消”button和后退键"

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

我能想到的唯一一个内置的应用程序就是联系人应用程序,而且我觉得UX很糟糕。 昨天,我只是在诅咒它而已。

也许其他内置的应用程序也可以,但是我还没有遇到过,至less不是我记得的。

无论如何,我已经浏览了官方文档,我找不到明确阐述的这种行为。

文档中没有这种性质的用户体验指南。 不幸。

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

你不会从我这里得到任何理由。

就个人而言,我认为后退button的行为是“取消”,或者是否定的select。 例如,对话框通常在Android上performance得如此。

如果您有现有的用户,并且已经与他们build立了联系(新闻稿,支持Google集团等),我会对他们进行调查并了解他们的想法。 最终,这是用户最想要的东西。

在捏,使其可configuration。 理想情况下,对于这样的事情,有一个真正的答案,因此可configuration性是毫无意义的。 但是,如果您的投票表示分组投票,并且缺lessAndroid平台用户体验指南,则设置可能是适合您的正确解决scheme。


更新:我写了一篇关于这个问题的博客文章 ,因为我认为这是相当重要的,值得多一点散文。

我强烈build议你遵循标准的Android和应用程序所使用的模型,编辑总是在适当的位置。 也就是说,没有“保存”button – 所做的更改在完成时被有效保存。 (实现可能会稍微有些不同,但对于用户来说这个不应该是可见的。)按照这个模型,你的button应该是“done”和“revert”的东西。 这有助于用户对正在发生的事情的心理模型,即将活动离开的可能性不大可能变成“回复”操作。

使用这种数据编辑模式的一个原因是,你会遇到很多不好的边缘情况。 如果您尝试在用户明确保存的情况下提供一个更传统的模型,那么用户可能从您的活动中取出的任何path都是导致数据丢失的一个潜在原因,这会导致您希望保护它们免于此,从而尝试显示对话框以确认他们确实想丢失数据。 这是一场失败的战斗,你永远无法抓住所有的漏洞,你的用户体验将会受到影响。 (例如,如果他们收到来电,现在只是暂时不提供对话框来问问他们是否想保存他们的数据,反正也不能。)

所以从你的基本模型开始编辑。 这与标准平台使用的惯例是一致的,这在平台devise中是有意select的,因为总的来说,它产生了一个更简单,更一致和易理解的用户体验。 devise你的UIstream程来强调这个模型,避免明确的“保存”动作。

对我而言,如果没有保存选项,我总是觉得“不安全”。 例如,在GTask中,当你创build一个新的任务时,点击“返回”(硬button)将会保存这些内容并返回到前一个屏幕。 BTW没有软键。 但是我总是对此感到沮丧。

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

  1. 您的“保存”操作至关重要(就像下订单一样!)
  2. 您的用户是否期望取消?

显然,如果这个保存是长时间处理和关键的,就必须采取明确的控制措施。 (后面不会保存); 对于第二点,我想GTask认为记笔记应该是快速和简单的,它应该感觉就像写在纸上—它被保存,一旦你写了。

谈到你说的话,回到networking浏览器是回去忘记一切。 但与此同时,谷歌(如Google Docs)也在做自动,后台保存,当你回来时它不会被“遗忘”。

试图决定用户何时回退的通用行为使得这个问题变得更加困难(如果不是不可能的话)。

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

与对话进行交互

如果用户按下对话框(例如date时间select器对话框),这是因为他不想看到该对话框或更改该信息。

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

与一个活动交互

例如,用户正在看到您的应用程序提供的某些项目的详细信息(联系信息)。 在一些变化之后回头可能意味着“现在把我带回到联系人列表”。 无论如何,这不是100%清楚。 所以包括保存和放弃更改的选项(不pipe你喜欢什么)都可能是一个不错的select。

我作为一个Android用户的想法

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

在活动中,我已经习惯了后退键保存数据并将我发送到最后一个活动。 每当我想放弃我的更改,我发现我自己按菜单button,并寻找一个button来取消。

如果您想要更好的内容,请在取消或保存信息时将默认行为作为首选项进行添加和/或显示敬酒。

取消vs还原

在实践中,他们做同样的事情。 取消应该,先生,取消你在做什么(编辑)。 这应该/可以带你到你之前做的事情(列表活动)。

恢复将会改变您所看到的状态,直到您开始进行更改。 这可能不会把你带到以前的活动。 它可以简单地将UI更新为原始值。

与联系人应用程序的实验

  1. 编辑联系人时按下可以保存更改。
  2. 编辑联系人时按下回家将放弃更改