我试图跟踪boolean变量的情况,hasMoreData以及EndlessAdapter为什么似乎过早地转向false。
让我从头开始运行会发生什么。 注意:我使用的是task和setRunInBackground(false);
我开始设置我的列表并设置适配器:
profileList = new ArrayList<ProfileReview>();
endlessAdapter = new EndlessProfileAdapter(getActivity(), profileList);
endlessAdapter.setRunInBackground(false);
listView.setAdapter(endlessAdapter);
旁注:不确定这是否正确,但似乎我正在使用空适配器设置列表。
在设置适配器后出现的第一件事是方法cacheInBackground(),我的profileList大小为零,因此它设置为 0,就像int startPoint调用我的AsyncTaskwherehasMoreData设置为时一样true。同时,在这个(缓存)方法中,hasMoreData 返回true. 不知道为什么?因为列表的大小为零?还是因为它仍然与默认值相关联true?
在任务中,它抓取前 10 个项目。
然后当用户滚动时,thobber开始旋转。并显示接下来的 10 个。 Log.d告诉我profileList.size()现在是 10,hasMoreData因此是错误的。
public void onItemsReady(ArrayList<ProfileReview> data) {
profileList.addAll(data);
endlessAdapter.onDataReady();
hasMoreData = profileList.isEmpty(); \\ Log.'d this out
}
我的问题:我的列表从 10 个项目开始,用户滚动,它又抓取了 10 个。然后在总共 20 个项目后停止(或何时停止hasMoreData == false。)但我还有更多项目要从中提取。我该如何保持hasMoreData == true?这是什么触发因素?显然触发器是列表大小(我认为?),为什么列表大小一旦开始抓取数据就会为 0?(直到课程结束)