美文网首页
listview实现分页查询

listview实现分页查询

作者: 果冻都烂了 | 来源:发表于2016-11-17 23:03 被阅读0次

    ###分页查询

    * 限制返回具体某些数据的sql语句如下:

    > select * from stu limit PAGE_COUNT offset COUNT;

    > PAGER_COUNT :代表的是每页返回多少, COUNT : 代表的是忽略掉前面的多少个条目。

    > select * from stu limit 2 offset 5 ; //跳过前面的5条数据,返回2条数据

    1. 定义查询方法

           String sql  = "select * from " + BlackListDB.TableBlackList.TABLE_NAME + " limit ? offset ?";

           Cursor cursor = db.rawQuery(sql, new String[]{limit+"" , offset+"" });

    2. 初次查询,只查第一页的数据

           //现在只查询第一页。

           mList = mDao.query(PAGE_SIZE , 0);

    3. 滑动到底部的时候,再去查询下一页的数据

    > 此处要知道滑动到了底部,必须对ListView执行监听, 代码详见如下:

    ###ListView滑动监听

    mListView.setOnScrollListener(this);

       //滑动状态变化

       @Override

       public void onScrollStateChanged(AbsListView view, int scrollState) {

           // 如果已经到了底部,并且现在是空闲状态(没有触摸,也不滑动。)

           //getLastVisiblePosition 得到当前屏幕里面的最底下哪一个条目的下标索引

           //后面的条件意思就是: 如果现在屏幕里面的最后哪一条就是整个集合的最后一条。

           if(scrollState== OnScrollListener.SCROLL_STATE_IDLE

                   && mListView.getLastVisiblePosition() == mList.size() - 1){

               //查询回来新的一页数据

                /*List list = mDao.query(PAGE_SIZE , mList.size());

                //添加数据到集合中

                mList.addAll(list);

                mAdapter.notifyDataSetChanged();*/

                //------------------------------------

               List list = mDao.query(PAGE_SIZE , mAdapter.getCount());

               //已经查询到底了,没有再多的数据返回了。

               if(list.size() == 0 ){

                   ToastUtil.showShort(this, "没有更多数据");

                   return ;

               }

                //添加数据到集合中

                mAdapter.addData(list);

                mAdapter.notifyDataSetChanged();

           }

       }

       //只要有滑动,就调用

       @Override

       public void onScroll(AbsListView view, int firstVisibleItem,

               int visibleItemCount, int totalItemCount) {

       }

    * ListView 数据为空,设置显示默认背景

      //设置数据为空显示的空view

                           mListView.setEmptyView(mIvEmpty);

    相关文章

      网友评论

          本文标题:listview实现分页查询

          本文链接:https://www.haomeiwen.com/subject/zhdjpttx.html