XRecyclerView上拉刷新 下滑加载更多的使用

在这里插入图片描述

依赖

	implementation 'com.jcodecraeer:xrecyclerview:1.5.9'
    implementation 'com.android.support:design:28.0.0' //有时导一个依赖会报错 加上这个就可以了

网络读写权限就不说了
直接看使用代码

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import com.bawei.drull_one_three.adapter.ShowAdapter;
import com.bawei.drull_one_three.bean.ShowBean;
import com.bawei.drull_one_three.mvp2.Contract;
import com.bawei.drull_one_three.mvp2.ShowPresenter;
import com.bawei.drull_one_three.ziview.souView;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.ProgressStyle;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

public class Main4Activity extends AppCompatActivity implements Contract.ShowView {

    private souView souview;
    private ShowPresenter showPresenter;
    String baseUrl = "http://172.17.8.100/small/commodity/v1/findCommodityByKeyword?&count=7&keyword=1";//默认显示数据
    String urll="http://172.17.8.100/small/commodity/v1/findCommodityByKeyword?page=1&count=7&keyword=";//搜索
    private XRecyclerView mRecy;
    private int page = 1;                                   // 页码
    List<ShowBean.ResultBean> results = new ArrayList<>();
    private ShowAdapter showAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);
        //找控件
        mRecy = findViewById(R.id.SRecyler);
        souview = findViewById(R.id.souview);
        //XRecyclerView管理器
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        mRecy.setLayoutManager(linearLayoutManager);
        //刷新样式 可不加
        mRecy.setRefreshProgressStyle(ProgressStyle.BallSpinFadeLoader);
        mRecy.setLoadingMoreProgressStyle(ProgressStyle.BallClipRotate);
        //设置适配器

        showAdapter = new ShowAdapter(this,results);
        mRecy.setAdapter(showAdapter);
        //设置刷新
        mRecy.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                page = 1;               // 重置页码
                String urlNew = baseUrl + "&page=" +page;
                showPresenter.getData(urlNew);
            }
            @Override
            public void onLoadMore() {
                page++;
                String urlNew = baseUrl + "&page=" +page;
                showPresenter.getData(urlNew);
            }
        });
//点击搜索的
       souview.setItemOnclik(new souView.ItemOnclik() {
           @Override
           public void Callback(String text) {
               String s = text.toString();//搜索框的内容
               showPresenter.getData(urll+ URLEncoder.encode(s));
           }
       });
       //实例p层
        showPresenter = new ShowPresenter();
        showPresenter.onAttachView(this);
        String urlNew = baseUrl + "&page=" +page;
        showPresenter.getData(urlNew);
    }
    //mvp返回回来的数据
    @Override
    public void getView(String data) {
        Gson gson = new Gson();
        ShowBean showBean = gson.fromJson(data, ShowBean.class);
        final List<ShowBean.ResultBean> result = showBean.getResult();
        if (result==null||result.size()==0){
            Toast.makeText(Main4Activity.this, "没有数据了", Toast.LENGTH_SHORT).show();
            resetRecycleViewState();
            return;
        }
        if (page == 1) {
            results.clear();
        }
        results.addAll(result);
        showAdapter.notifyDataSetChanged();
        resetRecycleViewState();
    }

    /**
     * 重置RecycleView 刷新状态
     */
    private void resetRecycleViewState() {
        mRecy.refreshComplete();
        mRecy.loadMoreComplete();
    }
}

猜你喜欢

转载自blog.csdn.net/Android_Mr_Zhao/article/details/89875879
今日推荐