我想使用下面的代码获取新数据并将其更新到我的列表视图中,我想要的是当我滚动到listView的底部时,它会自动更新并添加新数据列入清单。当更新列表视图时保持当前滚动位置
E.g:像Facebook,只有新数据添加到底部,但不会滚动,并保持当前位置
但是,那时我落得有一些问题。 这是
1)listview被更新,但它滚动回顶部。
listview .setOnScrollListener(new OnScrollListener() {
private int currentVisibleItemCount;
private int currentScrollState;
private int currentFirstVisibleItem;
private int totalItem;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
this.currentScrollState = scrollState;
this.isScrollCompleted();
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
this.currentFirstVisibleItem = firstVisibleItem;
this.currentVisibleItemCount = visibleItemCount;
this.totalItem = totalItemCount;
}
private void isScrollCompleted() {
if (totalItem - currentFirstVisibleItem == currentVisibleItemCount
&& this.currentScrollState == SCROLL_STATE_IDLE) {
Log.d("this is", "the end");
page = page + 1;
call_function(page);
}
}
});
....
....
public void call_function(int page_number) {
...
...
ListAdapter adapter = new SimpleAdapter(
getActivity(), user_List,
R.layout.user, new String[] {"user","date"},
new int[] {R.id.usr_name ,R.id.register_time});
// updating listview
setListAdapter(adapter);
}
任何解决方案来处理这个异常?
在此先感谢。
如果想要使用notify datasetchanged(),那么适配器不能是简单适配器吗? – enzo
为什么不呢? SimpleAdapter扩展了其中包含notifyDataSetChanged方法的BaseAdapter –
存在一个棘手的问题,您无法重新填充它:/他们在创建它时想到什么://// –