我试图跟踪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
调用我的AsyncTask
wherehasMoreData
设置为时一样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?(直到课程结束)