【问题标题】:keep data retained of listview when switching between activities在活动之间切换时保留列表视图的数据
【发布时间】:2017-11-04 02:20:30
【问题描述】:

当我将一个活动留给另一个活动时,我正在努力保留列表视图的数据或项目,例如,我在单击时创建了简单的应用程序,会将增加的数字添加到列表视图中,因此每次单击都会创建一个项目,例如 1 另一个单击添加2 以此类推。

该程序适用于主要活动,但随后我想查看另一个活动的结果,我称之为第二个活动,但问题是当我在第二个活动上点击返回按钮以返回主要活动时,我将失去所有列表视图中的项目。

我在 google 上查看了很多信息,但无法理解,所以请提供建议,并且由于我是初学者,请提供更多详细信息,我认为实例状态或共享偏好可以完成这项工作,但我没有认识他们中的任何一个

提前致谢,这是我的主要活动和第二个活动的应用代码以及输出图片 抱歉,我将代码添加为图像,因为该网站一直说代码需要缩进谢谢 main activity[主要输出][2]second activity[第二个活动输出][4]

【问题讨论】:

  • 感谢所有尝试提供帮助的人,我通过传输 arraylist 而不是单个项目找到了解决方案,效果很好。

标签: android listview sharedpreferences instancestate


【解决方案1】:

您需要将 ListView 的数据以某种形式保存在文件或数据库(本地或远程)中。没有直接的方法来存储列表视图,但您可以存储列表视图中的数据,然后在切换回活动时将其设置到列表视图中。

您需要记住,切换 Activity 会导致调用 android 中的 onPause() 方法,如果数据未保存在当前 Activity 中,那么当您移动到另一个 Activity 时,它将丢失。

【讨论】:

  • 感谢您的快速回复,我需要创建临时列表视图,以便单击按钮添加项目并单击按钮删除该按钮,因为我的数据不固定,所以我可以添加或删除,因此我认为很难将其保存在文件中,但我不知道我是否将它们保存在数据库中,然后如果我单击列表视图上的单个项目,我是否能够删除列表视图上的单个项目?
  • 您正在寻找的是:在共享首选项中保存数据(谷歌关于它)。您还可以根据保存的数据向列表视图添加或删除项目,但具体实施取决于您的具体要求。
  • 一个建议,共享首选项只允许在键值对中保存数据,所以要明智地使用它。
  • 为了能够通过单击从列表视图中删除项目,您需要在列表视图上设置一个 onClickListner 并根据其被单击的位置删除该项目。如果你分别用谷歌搜索这些特性,你会发现很多例子。
  • Somdip De 谢谢你,但我根本不知道如何使用共享偏好,谷歌上没有简单的例子,所有相似并且做不同的任务。
【解决方案2】:

将所有值添加到数组中,将其传递给适配器,然后在单击列表视图项后,在要切换活动的位置创建一个意图(意味着从一个活动到第二个活动),同时实现该意图,也传递你的数组,使用intent.put extra。然后您将在您的第二个活动中获取您的数组并返回到您之前的活动,再次传递一个意图(使用您的数组)并在您之前的活动中获取您的数组并将其传递给适配器。

【讨论】:

  • 谢谢,我试过没有运气,可能我不知道但谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多