ListView实现动态加载

觉得这个功能挺实用的,记录下来,方便以后查看。

初始时,先将footerview添加到listview中,如下:

 footView = LayoutInflater.from(this).inflate(R.layout.list_view_foot_loading_item, null);
 footView.setVisibility(View.GONE);
 mListView.addFooterView(footView);
实现动态加载,最主要的就是监听listview的滑动,具体实现如下:

</pre><p><pre name="code" class="java"> mListView.setOnScrollListener(new OnScrollListener()
        {
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState)
            {
                if ((((lastItemIndex == messageAdapter.getCount() - 1) && mListView.getFooterViewsCount() == 0)
                        || (((lastItemIndex == messageAdapter.getCount()) && mListView.getFooterViewsCount() != 0))) && scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) 
                {
                    if (pageIndex * PAGE_SIZE >= totalCount)
                    {
                        showToast("没有更多结果了");
                        mListView.removeFooterView(footView);
                        return;
                    }
                    footView.setVisibility(View.VISIBLE);
                    messageLogic.querySystemMessages(pageIndex * PAGE_SIZE, PAGE_SIZE);
                }
            }
            
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
                    int totalItemCount)
            {
                lastItemIndex = firstVisibleItem + visibleItemCount - 1;
            }
        });

     

  其中,lastItemIndex表示的是底部最后可见的item项的下标,从0开始;pageIndex表示的是当前的页数;PAGE_SIZE表示每页加载的数量;totalCount表示数据库中总共的数据数量,从服务器中获取。messageLogic.querySystemMessages(pageIndex * PAGE_SIZE, PAGE_SIZE)方法用于向服务器中请求相应的数据。当滑动到最后时,若数据库中还有数据,则显示加载的滚动条并加载数据,否则,删除footerview。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值