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); } } }
相关文章推荐
- nyoj 322 117 求逆序数 归并排序
- Linux那些事儿之我是Sysfs(final)后记
- Jquery ajax 跨域访问
- 解决Eclipse建Maven项目module无法转换为2.3
- lua得到一个真随机数字
- HDU 1455 (dfs 强剪枝)
- 脑残的低级错误之静态成员变量
- 脑残的低级错误之静态成员变量
- 利用platform库获取浏览器和操作系统版本
- mysql问题汇总
- JVM调优- jmap(转)
- 使用Java和Scala在IDE中开发DataFrame实战
- Linux那些事儿之我是Sysfs(13)举例四:sysfs读入普通文件内容
- 标题QWER
- Flea travel<水题>
- 找window的三种方法
- JVM调优- jstat(转)
- Linux那些事儿之我是Sysfs(12)举例三:sysfs读入文件夹内容
- Hammer.js v1.0.5 在Surface上使用Chrome时,手指点击时放大
- lintcode --有效回文串