您的位置:首页 > 其它

ListView分页加载

2016-05-17 17:51 330 查看
public class MainActivity extends Activity {

private int index;
private ListView lv;
private List list;
private MyAdapter ma;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

lv = (ListView) findViewById(R.id.lv);
list = new ArrayList();
initData();

ma = new MyAdapter(this, list);
lv.setAdapter(ma);

// 滑动监听事件
lv.setOnScrollListener(new OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 滑动的状态是最后一个item
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
if (view.getLastVisiblePosition() == list.size() - 1) {
index += 30;
Toast.makeText(MainActivity.this, "加载更多", 0).show();
initData();
ma.notifyDataSetChanged();

}
}
/**
*scrollState有三种状态,分别是SCROLL_STATE_IDLE、SCROLL_STATE_TOUCH_SCROLL、SCROLL_STATE_FLING
*SCROLL_STATE_IDLE是当屏幕停止滚动时
*SCROLL_STATE_TOUCH_SCROLL是当用户在以触屏方式滚动屏幕并且手指仍然还在屏幕上时(The user is scrolling using touch, and their finger is still on the screen)
*SCROLL_STATE_FLING是当用户由于之前划动屏幕并抬起手指,屏幕产生惯性滑动时(The user had previously been scrolling using touch and had performed a fling)
*/

}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
/**
* firstVisibleItem 表示在当前屏幕显示的第一个listItem在整个listView里面的位置(下标从0开始)
* visibleItemCount表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数
* totalItemCount表示ListView的ListItem总数
* listView.getLastVisiblePosition()表示在现时屏幕最后一个ListItem
* (最后ListItem要完全显示出来才算)在整个ListView的位置(下标从0开始)
*/
}
});
}

private void initData() {
for (int i = index; i < index + 30; i++) {
list.add("我是item" + i);
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: