加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Android中ListView上拉加载更多及下拉刷新

发布时间:2020-12-14 23:50:08 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 privatePullToRefreshListView freshListView;privateBeforeRecordAdapter adapter;@Override protected void onCreate(Bundle savedInstanceState) {

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

privatePullToRefreshListView freshListView;

privateBeforeRecordAdapter adapter;

@Override
      protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);

setContentView(R.layout.......);

 

freshListView= (PullToRefreshListView) findViewById(R.id.period_record_lv);//所在页面布局文件中对应PullToRefreshListView 
           freshListView.setMode(Mode.BOTH);//模式为上下拉

/* 
         * Mode.BOTH:同时支持上拉下拉 
         *Mode.PULL_FROM_START:只支持下拉Pulling Down 
         *Mode.PULL_FROM_END:只支持上拉Pulling Up 
         * 如果Mode设置成Mode.BOTH,需要设置刷新Listener为OnRefreshListener2,并实现                     onPullDownToRefresh()、onPullUpToRefresh()两个方法。 
         * 如果Mode设置成Mode.PULL_FROM_START或Mode.PULL_FROM_END,需要设置刷新Listener为OnRefreshListener,同时实现onRefresh()方法。 
         * 当然也可以设置为OnRefreshListener2,但是Mode.PULL_FROM_START的时候只调用onPullDownToRefresh()方法, 
         * Mode.PULL_FROM的时候只调用onPullUpToRefresh()方法. 
         */

freshListView.setOnRefreshListener(newOnRefreshListener2<ListView>() {
                 @Override
                 public voidonPullDownToRefresh(PullToRefreshBase<ListView> arg0) {

//下拉刷新实现

CURRENT_PAGE= 1;//分页加载,下拉刷新的都是第1页的数据
                      getData();//从服务器取数据
                 }

                 @Override
                 public voidonPullUpToRefresh(PullToRefreshBase<ListView> arg0) {

//上拉加载更多
                      CURRENT_PAGE++;//分页加载,上拉加载下一页面数据
                      getData();//从服务器取数据
                 }
           });
           adapter = new BeforeRecordAdapter(this);//适配器
           freshListView.setAdapter(adapter);//设置数据
           freshListView.setOnItemClickListener(beforeItemClick);//item点击事件

}

//加载服务器数据,或是自己构造数据

privatevoid  getData(){

//首先是获取到请求的数据,计算出数据的数量totalSize

//然后根据totalSize来判断freshListView应该处理哪种模式,比如数据加载完了就不能再上拉刷新

if(totalSize == 0) {
                 freshListView.setMode(Mode.DISABLED);
           } else if (adapter.getCount() >= totalSize) {
                 freshListView.setMode(Mode.PULL_FROM_START);
           } else {
                 freshListView.setMode(Mode.BOTH);
           }
           freshListView.onRefreshComplete();

}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读