一个因为粗心的Bug

时间:2023-03-08 23:52:20
一个因为粗心的Bug
/**
* 数据绑定,分页显示
*/
private void updataMenu(final EditText search)
{
if(listwz==null)
{
return;
} pageID =0;
listwz.setAdapter(null);
FilterArray = new JSONArray();
FilterArray = usedatabase.WzArray(search.getText().toString(), pageID,WzLbID);
// pageID = 1; //Bug 少查10条数据,但不影响速查
wzadapter = new WzAdapter(context, FilterArray,search);
listwz.setAdapter(wzadapter);
listwz.setOnScrollListener(new OnScrollListener() {
int lastitem = 0;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
if(scrollState == OnScrollListener.SCROLL_STATE_IDLE && listwz.getCount()-lastitem<1)
{
if(WzLbID.equals(""))
{
pageID +=1;
//把原来的加到一个新的Array里面
NewArray = new JSONArray();
NewArray = usedatabase.WzArray(search.getText().toString(), pageID,WzLbID);
try {
for(int i=0;i<NewArray.length();i++)
{
JSONObject item = (JSONObject)NewArray.get(i);
FilterArray.put(item);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int currentPostition = listwz.getFirstVisiblePosition();
WzAdapter adapter = new WzAdapter(context, FilterArray,search);
listwz.setAdapter(adapter);
listwz.setSelectionFromTop(currentPostition+1, 0);
}
else
{
if(usedatabase.WzArray(search.getText().toString(), pageID,WzLbID).length()>FilterArray.length())
{
pageID +=1;
//把原来的加到一个新的Array里面
NewArray = new JSONArray();
NewArray = usedatabase.WzArray(search.getText().toString(), pageID,WzLbID);
try {
for(int i=0;i<NewArray.length();i++)
{
JSONObject item = (JSONObject)NewArray.get(i);
FilterArray.put(item);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int currentPostition = listwz.getFirstVisiblePosition();
WzAdapter adapter = new WzAdapter(context, FilterArray,search);
listwz.setAdapter(adapter);
listwz.setSelectionFromTop(currentPostition+1, 0);
}
}
}
} @Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
lastitem = visibleItemCount+firstVisibleItem; }
});
}

在按类别分页查询时候,默认为从10-0开始,查过一次后加了1,然后会照成10-10这10条数据查不出来,在大数据时候这10条数据很难发现,今天一个测试库只有26条数据,总是就加载16条数据,百思不得其解,检查代码才发现,真是粗心。