我有一个带适配器的listView。
我想从服务器获取项目,然后将图像加载到每个项目。
服务器可以返回数十个项目,所以我从客户端按10页询问它们。
我不希望用户选择一个页面或"next\back“
只是为了在需要的时候添加更多的物品。
我想用一个本地的收藏,然后用接下来的十项来填满它。
我的指示器在Adapter::getView位置== 8中。
问题是,从服务器响应填充本地集合的函数在适配器之外。
如何调用此方法,然后刷新适配器或使其失效?
你会用不同的方法吗?
由于我加载图像,我需要压缩他们,所以我不能使用和现成的无休止的列表,这是存储在git上。
发布于 2014-06-29 04:50:47
重要的是,函数在哪里,您只需要几步。
1-在适配器中定义页码。
int pageNumber;
// getter and setter 2-在getView中定义一个方法,用于:
if (position == list.size()-2 && list.size() < totalRecord) // this make 8 , 18 , ...
getMoreData();总记录是服务器端的所有记录。
然后在getMore函数调用父方法中:
如果在活动中:
((ActivityName)context).functionName();如果在片段类中,一种方法是将片段类传递给适配器,然后调用:
fragment.functionName();然后,在活动函数中,只需增加(adapter.setPageNumber(++adapter.getPageNumber())的值,并将数据添加到列表中,然后调用adapter.notifyDatasetChanged();。
最后一步,因为getMoreData();可能会调用更多,一旦您可以添加一个布尔值来检查是否调用了该值,如下所示:
if (position == list.size()-2 && list.size() < totalRecord && isCanLoad())在getMoreData()中,将其更改为false,并在从活动/片段类获取所有数据之后,再次将其更改为true。
发布于 2014-06-29 04:46:52
每当您想要向listView添加更多项时:
adapter.notifyDataSetChanged()。https://stackoverflow.com/questions/24473225
复制相似问题