我正在开发一个冗长的列表视图,该视图是从来自我的服务器的JSON数组创建的。当一个项目被选中时,它可以在列表中的任何位置,当我返回时,我想跳回到该特定项目。
我在考虑setSelection(position)结构,但我很好奇如何设置位置变量。是否需要来自JSON字符串,或者它是在填充列表视图时创建的变量。如果它被创建了什么是检索它的语法,那么我可以将它传递给负责显示更多数据的Activity,然后在重新显示列表视图时返回到原始Activity。
作为附加信息,我刚刚添加了将其存储在我的首选项中的功能,因此它将加载更快,因此它存储在手机上。如果数据因用户交互而发生变化,我会检索新的JSON字符串,因此保持位置并不重要。
我希望不需要重建我的JSON字符串来包含这个变量。
由于
答案 0 :(得分:1)
将您的索引存储在某处并使用此选项来关注所选项目:
// focus on selected item
View v = myListView.getChildAt(index);
int top = (v == null) ? 0 : v.getTop();
myListView.setSelectionFromTop(index, top);
答案 1 :(得分:1)
在ListView上使用setOnItemClickListener
并将当前位置保存在局部变量上(持久性或非持久性取决于需要),在您回来时在setSelection
对象上使用此ListView
方法( onResume
如果它是一个Activity,请在设置之前检查空值。