【问题标题】:A better way to implement undo deletion [closed]实现撤消删除的更好方法[关闭]
【发布时间】:2015-06-18 18:53:51
【问题描述】:

我目前正在开发一个 Android 应用程序,并且我有一个包含列表和内容数据库的活动。提供了一个撤消功能:当用户删除一个条目时,会出现一个弹出窗口Item deleted. Undo?。这就是它的实现方式:用户仅在屏幕上删除它,而不对数据库进行任何更改。只有当弹出窗口消失(或要关闭活动)时,才会从数据库中删除条目。

问题是:立即从数据库中删除已删除的条目,然后在用户想要撤消删除时将其添加回来会更好吗?或者,也许,只有在用户离开活动时才对数据库进行所有更改会更好?如果是这样,为什么?

提前致谢。

【问题讨论】:

  • 不是一个值得投反对票的问题,但我个人喜欢等待用户操作执行任何数据库操作的想法,因为它绝对成本更高。

标签: android list undo


【解决方案1】:

最好的办法通常是询问用户是否真的要删除,确认后删除。

撤消方法可以简单地通过将数据库中的行标记为已删除并在弹出窗口关闭或应用程序(重新)启动时真正删除它来实现。然后,您也可以简单地忽略所有查询中的所有标记为删除的行。

【讨论】:

  • This Android Developers page 有一个很好的流程图,它告诉用户是在执行某些操作之前询问用户还是在执行操作之后提供撤消选项,所以我决定正确地制作它(我通过图表的方式是 1 - 否 → 2 - 是 → 3 - 是 → 是,这表示要进行撤消选项)。你对撤销方法的看法看起来和我的几乎一样,所以我想我会保持原样。谢谢。
  • @Kotenko:删除属于 1 中不可恢复的数据丢失,因此您对 1 的回答应该是肯定的
  • 嗯,是的,你是对的。看起来像每个提供撤消删除功能的谷歌应用程序,如果没有撤消,则将条目移动到垃圾文件夹,因此用户无论如何都可以轻松恢复它。也感谢您的指正。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-02
  • 1970-01-01
  • 2017-01-30
  • 2011-08-25
  • 2017-03-16
相关资源
最近更新 更多