我想制作一个应用程序,其中有 100 个 uri 的图像保存在数据库中。现在我希望整个数据不会从数据库中获取,只显示在列表视图中。我希望我只获取列表的当前视图屏幕的数据,因此我滚动列表的下一个项目将获取下一个数据项目,因此应用程序在列表视图中显示数据不会很慢。
问问题
16269 次
3 回答
3
冗长的列表视图不会让您的滚动变慢,只需一次获取所有 100 个 uri 并填写适配器;它会正常工作...
于 2012-05-11T14:42:49.350 回答
2
下面有一个滚动监听器:
class EndlessScrollListener implements OnScrollListener{
private static final String TAG = "CacheToDBActivity.EndlessScrollListener";
private boolean loading = true;
@Override
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
if (!(loading) && (totalItemCount - visibleItemCount) <= (firstVisibleItem)) {
Log.d(TAG, "Load Next Page!");
loading = true;
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {}
public boolean isLoading() {
return loading;
}
public void setLoading(boolean loading) {
this.loading = loading;
}
}
您可以实例化一个 EndlessScrollListener 并将您的列表视图的 onScrollListener 设置为:
yourListView.setOnScrollListener(endlessScrollListener);
在无尽滚动侦听器的Log.d(TAG, "Load Next Page!");
行之上,您可以从数据库中获取项目,并将它们添加到您的适配器。
调用后notifyDataSetChanged();
您的项目将在列表中可见
希望这可以帮助
于 2012-05-11T14:50:13.863 回答
1
查看cwac 无限适配器以实现分页。
于 2012-05-11T14:42:43.903 回答