我从Sq-lite db.
填充列表视图现在我的问题是,当我点击列表视图项目进入下一页并在此之后返回列表视图时,我想要滚动列表与之前的相同点。任何想法如何做到这一点。
这是
中的list-view
方法
的onCreate()
private void populateList() {
descArray.clear();
List<All_Post> allDesc = dbhelper.getAllDescriptions();
for (All_Post all_Post : allDesc)
{
String strInspectorname = all_Post.getStringInspectorname();
Log.e("strInspectorname "," = " + strInspectorname);
descArray.add(all_Post);
}
if (adapter == null)
{
adapter = new AllPostAdapter(this, R.layout.allpostlist, descArray);
listView.setAdapter(adapter);
}
else if (adapter != null) {
adapter.notifyDataSetChanged();
adapter = new AllPostAdapter(this, R.layout.allpostlist, descArray);
listView.setAdapter(adapter);
}
}
我尝试了这个链接Maintain/Save/Restore scroll position when returning to a ListView,listView在最后位置。
答案 0 :(得分:2)
试试这个
// Save the ListView state (= includes scroll position) as a Parceble
Parcelable state = listView.onSaveInstanceState();
// e.g. set new items
listView.setAdapter(adapter);
// Restore previous state (including selected item index and scroll position)
listView.onRestoreInstanceState(state);
答案 1 :(得分:1)
按照以下步骤
4。 直接滚动:
getListView().setSelection(YOUR_POSITION);
平滑滚动:
getListView().smoothScrollToPosition(YOUR_POSITION);
希望它会对你有所帮助。
答案 2 :(得分:0)
在转到下一页之前,只需根据列表视图方向调用getScrollY / getScrollX来存储列表视图的滚动位置。当您再次返回此页面时,通过调用setScrollX / setScrollY
恢复存储位置