将listview的状态保存在我的活动中的片段中

时间:2014-06-12 10:38:36

标签: android listview android-activity fragment

我是Android的新手,我知道之前曾经问过这样的类似问题,我看过他们的答案,似乎没有一个能解决我的问题

我的活动中的片段中有一个listview,它从URL检索信息并使用自定义适配器显示它,点击一行将显示有关在新活动中单击的行的更多信息,例如包含更多详细信息的新闻。

我遇到的问题是每次我从活动中返回更多详细信息时,之前的活动必须再次建立连接以从URL中检索信息以显示在列表视图中,因此列表视图变为空并且整个流程从头开始

我正在寻找最好和/或最简单的方法来保存前一个活动中的片段状态或活动本身,这样当用户回到它时,他会看到它离开时它赢了每次都要建立连接。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我会做以下事情:

  1. 制作一个pojo类和一个存储列表视图所需数据的arraylist。您还可以存储交互。另外,用于指示listview的firstVisibleItem的静态字段也很有帮助。
  2. 我在另一个类中创建了一个公共静态arraylist对象。
  3. 在oncreate视图中展开布局
  4. 在onstart首先,我检查另一个类长度中定义的静态arraylist是否为0.如果它是空的,我从Internet加载它。如果不是我将adadter设置为listview
  5. 关于片段的暂停方法,您可以将listview的静态字段firstVisibleItem设置为listview的第一个可见项目。
  6. 在第二次加载片段时,我只需将适配器设置为listview,如果firstVisibleItem具有有效值(不是-1),那么我执行listview.setSelectionFromTop()。 它可能看起来像很多代码,但它相当简单。询问您是否有任何意见。