我想创建一个应用程序,其中我有100 uri图像保存在数据库中。现在我希望不会从数据库中获取整个数据只显示在listview中。我希望我只获取数据到列表的当前视图屏幕,因此下一项我滚动列表而不是下一个数据项将被提取,因此应用程序在listview中显示数据的速度不会很慢。
答案 0 :(得分:3)
冗长的列表视图不会使您的滚动速度变慢 只需单次出现所有100 uri并填写适配器; 它会正常工作......
答案 1 :(得分: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并将listview的onScrollListener设置为:
yourListView.setOnScrollListener(endlessScrollListener);
在endlessscrollListener的Log.d(TAG, "Load Next Page!");
行之上,您可以从数据库中获取项目,并将它们添加到您的适配器。
致电notifyDataSetChanged();
后,您的商品会在列表中显示
希望这有帮助
答案 2 :(得分:1)
签出cwac endless adapter以实现分页。