ListView 滑动分页 却自动触发 OnScrollListener 事件继续加载数据

华兹格 发布于 2012/04/02 22:13
阅读 3K+
收藏 0

我想实现  ListView  滑动到底部 自动分页功能,但在执行onCreate() 事件填充数据后,又会触发 OnScrollListener 事件继续加载数据。这是什么原因?如何避免?

请高手指点迷津!

我在OnScrollListener监听器里人代码:

private OnScrollListener listViewListener =new OnScrollListener() {

@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

// TODO Auto-generated method stub

}

@Override

public void onScroll(AbsListView view, int firstVisibleItem,

int visibleItemCount, int totalItemCount) {

// TODO Auto-generated method stub

if (totalItemCount <= 0) {

return;

}

if (firstVisibleItem + visibleItemCount >= totalItemCount) {

// 当前可视第1条index + 当前可视界面存在?条 >= 总数Index 时,说明在底端

// "这里到底了"

//Toast.makeText(this,"正在努力为您加载……",Toast.LENGTH_SHORT).show();

Log.i("正在努力为您加载……","正在努力为您加载……");

String sqlQuery="SELECT * FROM tb_house_info ORDER BY publish_date DESC  ";

arrayList= DBUtility.searchHouseInfoBySQL(sqlQuery,nextPage, nextPage+10, CustomSearchResultActivity.this,false);

if(arrayList !=null ){

for (int i = 0; i < arrayList.size(); i++) {

// 动态数组存列表值

Map<String, String> item = new HashMap<String, String>();

HouseInfo house = new HouseInfo();

house = (HouseInfo) arrayList.get(i);

// 将查到数据放到动态数组里面

item.put("title",

"【" + house.getInfo_type() + "】" + house.getContent());

mData.add(item);

}

//listItemAdapter.notifyDataSetChanged();

listItemAdapter = new SimpleAdapter(CustomSearchResultActivity.this, mData,R.layout.new_group, new String[] { "title", "text" },new int[] { R.id.lb_title, R.id.lb_text });

listView.setAdapter(listItemAdapter);

// 设置高度

DBUtility.setListViewHeightBasedOnChildren(listView);

// 点击事件

listView.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

// TODO Auto-generated method stub

showDialog();

m = position;

}

});

}else{

//Toast.makeText(this,"数据已加载完全",Toast.LENGTH_SHORT).show();

Log.i("数据已加载完全","数据已加载完全");

return;

}

}

}

};

加载中
0
苦行瓜
苦行瓜
只判断显示条数与你加载数据条数是否相等是不够的,应该还要加上 scrollState 状态来进行判断,具体 scrollState 有哪个状态 我忘记了,你可以查查android的文档
华兹格
华兹格
scrollState有三种状态,分别是开始滚动(SCROLL_STATE_FLING),正在滚动(SCROLL_STATE_TOUCH_SCROLL), 已经停止(SCROLL_STATE_IDLE),,但这些有真么组合判断呢?
0
华兹格
华兹格
谢谢啦!我看看去~~
返回顶部
顶部