0

我正在开发一个冗长的列表视图,它是从来自我的服务器的 JSON 数组创建的。当一个项目被选中时,它可能在列表中的任何地方,当我返回时,我想跳回到那个特定的项目。

我正在考虑 setSelection(position) 结构,但我很好奇 position 变量是如何设置的。它是否需要来自 JSON 字符串,或者它是在填充列表视图时创建的变量。如果创建它,检索它的语法是什么,以便我可以将它传递给负责显示更多数据的 Activity,然后在重新显示列表视图时返回原始 Activity。

作为附加信息,我刚刚添加了将其存储在我的首选项中的功能,以便加载速度更快,从而将其存储在手机上。如果数据由于用户交互而发生变化,我会检索新的 JSON 字符串,因此保持位置并不重要。

我希望不需要重建我的 JSON 字符串来包含这个变量。

谢谢

4

2 回答 2

1

将您的索引存储在某处并使用它来关注所选项目:

// focus on selected item
View v = myListView.getChildAt(index);
int top = (v == null) ? 0 : v.getTop();
myListView.setSelectionFromTop(index, top);
于 2013-01-15T07:22:15.350 回答
1

在 ListView 上使用setOnItemClickListener并将当前位置保存在局部变量上(持久或非持久取决于需要),在您返回时在对象上使用此setSelection方法(如果它是 Activity),在设置之前检查空值。ListViewonResume

于 2013-01-15T07:42:25.180 回答