【问题标题】:Best way to start/maintain activity?开始/保持活动的最佳方式?
【发布时间】:2016-09-05 17:47:55
【问题描述】:

我正在尝试重新设计我的 Android 应用程序,但我不确定哪种编程方法最适合我正在尝试做的事情。

目前,我的导航抽屉中有一个名为“我的锻炼”的页面。在这个页面中,我有一个可扩展的列表视图,每个项目都是一个锻炼项目,包含 4 个子项目(第 1 周到第 4 周)。当他们单击子项时,会打开一个带有 3 个片段选项卡(周一、周三、周五)的新活动。每个选项卡都包含一个回收器视图,该视图根据单击的 exp 列表视图项填充。

我想更改它,使可扩展列表视图活动称为“选择锻炼”,并且可扩展列表视图变成普通列表视图。当单击一个项目时,它会转到导航抽屉中的新页面(我的锻炼)并在应用程序中启动一个新的..“活动”。因此,用户不必去每个项目,然后是一周,然后是一天,它只会在新页面上加载第一天(使用回收站视图)。然后该页面上会出现一个显示“已完成”的按钮,点击后会显示第二天(第 1 周星期三),并一直持续到该月结束。

我很确定我可以使用简单的意图和额外的意图来实现它。我担心的问题是,当应用程序关闭并从导航抽屉重新打开到“我的锻炼”时,应用程序将如何反应?据我所知,意图将丢失,因为它不再来自列表视图页面(选择锻炼)。

有谁知道在“我的锻炼”页面中保存他们正在进行的锻炼的最佳方式是什么,所以如果他们开始特定的锻炼,然后关闭应用程序,然后重新打开它并直接转到“我的锻炼”页面锻炼”页面,是他们离开的同一个地方吗?

谢谢!

【问题讨论】:

  • 将位置或父/子对象引用保存在SharedPreferences?
  • 对不起,对 android 来说是个新手,但你的意思是当用户单击列表视图中的一个项目时,它会为共享首选项添加一个值,然后当他们打开“我的锻炼”选项卡时,它会检查在设置布局之前查看传递了什么值?那么当最后一项完成时,在完成按钮中我只是删除该值或将其设置为默认值?
  • 基本上,是的。您可以在他们每次单击某物时或在退出列表之前设置该值。就像onPause() 或任何最适合您的情况一样。
  • 好的,谢谢,没想到,我去试试

标签: android android-intent android-activity savestate android-savedstate


【解决方案1】:

最好的方法是使用SharedPreferenceSQLite。始终首选将结果保存在 SharedPreference 中。将结果保存到首选项中,一旦用户返回应用程序,检查先前保存的数据/阶段的结果(根据您的应用程序)并执行操作。

【讨论】:

    猜你喜欢
    • 2010-10-22
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    相关资源
    最近更新 更多