由于getView() 是在当item被显示的时候才被调用,所以我们可以在getView()中根据被显示元素的位置判断是否要去加载新的数据
public class MsgListAdapter extends BaseAdapter {
List<MsgModel> msgList;
boolean hasMore = true;
public View getView(int position, View convertView, ViewGroup parent) {
//得到view部分省略
//第一次查询的是前2页,以后第当倒数第二页面最后一条被读取的时候再去读取新的一页面
if (hasMore&&msgList.size()-PAGESIZE==position) {
//更新数据部分省略……
msgListAdapter.notifyDataSetChanged();
//解决列表更新后无法响应事件
listView.requestFocusFromTouch();
}
return view;
}
}