Android下拉刷新和上拉加载

先看看XML布局文件,下拉刷新和上拉加载哪个在外层并没有什么影响。最里面嵌套了一个RecycleView。

<android.support.v4.widget.SwipeRefreshLayout

    android:id="@+id/gridswipreRefresh"

    android:layout_below="@+id/grid_view"

    style="?android:attr/progressBarStyle"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <com.scwang.smartrefresh.layout.SmartRefreshLayout

        android:id="@+id/gridrefreshLayout"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        app:srlAccentColor="#000000"

        app:srlEnableHeaderTranslationContent="false"

        app:srlEnablePreviewInEditMode="true"

        app:srlEnableRefresh="false"

        app:srlPrimaryColor="#000000"

        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <android.support.v7.widget.RecyclerView

            android:id="@+id/gs_recyclerview"

            android:layout_width="match_parent"

            android:layout_height="match_parent">

        </android.support.v7.widget.RecyclerView>

        <com.scwang.smartrefresh.layout.footer.ClassicsFooter

            android:layout_width="match_parent"

            android:layout_height="wrap_content" />

     </com.scwang.smartrefresh.layout.SmartRefreshLayout>

</android.support.v4.widget.SwipeRefreshLayout>

    我们把swipeRefresh.setRefreshing(true)放在swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener()这个函数中,而不是和mRefreshLayout.setNoMoreData(false)一样放在search_sendRequestWithOkHttp()里边,是为了避免上拉加载的时候又同时刷新,最后记得刷新完之后要把刷新功能关掉,即记得调用swipeRefresh.setRefreshing(false)函数。废话不多说,上代码。

private SwipeRefreshLayout swipeRefresh;

private RefreshLayout mRefreshLayout;

private RecyclerView recyclerView;

recyclerView = (RecyclerView) findViewById(R.id.gs_recyclerview);

swipeRefresh = (SwipeRefreshLayout) findViewById(R.id.gridswipreRefresh);

mRefreshLayout = findViewById(R.id.gridrefreshLayout);

swipeRefresh.setColorSchemeResources(R.color.colorPrimary);

swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

    @Override

    public void onRefresh() {

        swipeRefresh.setRefreshing(true);

        page = 1;

        if (svText.trim()!=""){

            if(((pvText_grid!="选择网格")) && ((pvText_form!="主体业态"))){

                search_sendRequestWithOkHttp(

                        "&enterpriseName=%25"+svText+"%25&",

                        "&supervisionorg=%25"+pvText_grid+"%25",

                        "&mainbusinessform=%25"+pvText_form+"%25");

            }else if (((pvText_grid!="选择网格")) && ((pvText_form=="主体业态"))){

                search_sendRequestWithOkHttp(

                        "&enterpriseName=%25"+svText+"%25",

                        "&supervisionorg=%25"+pvText_grid+"%25",

                        "");

            }else if (((pvText_grid=="选择网格")) && ((pvText_form!="主体业态"))) {

                search_sendRequestWithOkHttp(

                        "&enterpriseName=%25"+svText+"%25",

                        "",

                        "&mainbusinessform=%25"+pvText_form+"%25");

            }else if (((pvText_grid=="选择网格")) && ((pvText_form=="主体业态"))) {

                search_sendRequestWithOkHttp(

                        "&enterpriseName=%25"+svText+"%25",

                        "",

                        "");

            }

        }else {

            svText = "";

            if(((pvText_grid!="选择网格")) && ((pvText_form!="主体业态"))){

                search_sendRequestWithOkHttp(

                        "",

                        "&supervisionorg=%25"+pvText_grid+"%25",

                        "&mainbusinessform=%25"+pvText_form+"%25");

            }else if (((pvText_grid!="选择网格")) && ((pvText_form=="主体业态"))){

                search_sendRequestWithOkHttp(

                        "",

                        "&supervisionorg=%25"+pvText_grid+"%25",

                        "");

            }else if (((pvText_grid=="选择网格")) && ((pvText_form!="主体业态"))) {

                search_sendRequestWithOkHttp(

                        "",

                        "",

                        "&mainbusinessform=%25"+pvText_form+"%25");

            }else if (((pvText_grid=="选择网格")) && ((pvText_form=="主体业态"))) {

                search_sendRequestWithOkHttp(

                        "",

                        "",

                        "");

            }

        }

    }

});

mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {

    @Override

    public void onLoadMore(RefreshLayout refreshlayout) {

        ++page;

        Log.i("page",String.valueOf(page));

        if (pvText_grid == "选择网格" && pvOption1 == 0) {

            getFormCountRequestWithOkHttp("");

        }else {

            getFormCountRequestWithOkHttp(pvText_grid);

        }

                if (svText.trim()!=""){

                    if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvOption2==0 || pvText_form=="主体业态"))){

                        if (page < (main/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "&enterpriseName=%25"+svText+"%25",

                                    "&supervisionorg=%25"+pvText_grid+"%25",

                                    "");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="食品销售"))){

                        if (page < (food/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "&enterpriseName=%25"+svText+"%25",

                                    "&supervisionorg=%25"+pvText_grid+"%25",

                                    "");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="餐饮服务"))){

                        if (page < (serve/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "&enterpriseName=%25"+svText+"%25",

                                    "&supervisionorg=%25"+pvText_grid+"%25",

                                    "");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="单位食堂"))){

                        if (page < (canteen/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "&enterpriseName=%25"+svText+"%25",

                                    "&supervisionorg=%25"+pvText_grid+"%25",

                                    "");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvText_grid=="选择网格")) && ((pvText_form=="单位食堂"))) {

                        if (page < (canteen/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "&enterpriseName=%25"+svText+"%25",

                                    "",

                                    "&mainbusinessform=%25"+pvText_form+"%25");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvText_grid=="选择网格")) && ((pvText_form=="餐饮服务"))) {

                        if (page < (serve/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "&enterpriseName=%25"+svText+"%25",

                                    "",

                                    "&mainbusinessform=%25"+pvText_form+"%25");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvText_grid=="选择网格")) && ((pvText_form=="食品销售"))) {

                        if (page < (food/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "&enterpriseName=%25"+svText+"%25",

                                    "",

                                    "&mainbusinessform=%25"+pvText_form+"%25");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvText_grid=="选择网格")) && ((pvOption2==0 || pvText_form=="主体业态"))) {

                        if (page < (main/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "&enterpriseName=%25"+svText+"%25",

                                    "",

                                    "");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }

                }else {

                    svText = "";

                    if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvOption2==0 || pvText_form=="主体业态"))){

                        if (page < (main/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "",

                                    "&supervisionorg=%25"+pvText_grid+"%25",

                                    "");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="食品销售"))){

                        if (page < (food/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "",

                                    "&supervisionorg=%25"+pvText_grid+"%25",

                                    "&mainbusinessform=%25"+pvText_form+"%25");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="餐饮服务"))){

                        if (page < (serve/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "",

                                    "&supervisionorg=%25"+pvText_grid+"%25",

                                    "&mainbusinessform=%25"+pvText_form+"%25");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="单位食堂"))){

                        if (page < (canteen/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "",

                                    "&supervisionorg=%25"+pvText_grid+"%25",

                                    "&mainbusinessform=%25"+pvText_form+"%25");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvText_grid=="选择网格")) && ((pvText_form=="单位食堂"))) {

                        if (page < (canteen/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "",

                                    "",

                                    "&mainbusinessform=%25"+pvText_form+"%25");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvText_grid=="选择网格")) && ((pvText_form=="餐饮服务"))) {

                        if (page < (serve/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "",

                                    "",

                                    "&mainbusinessform=%25"+pvText_form+"%25");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvText_grid=="选择网格")) && ((pvText_form=="食品销售"))) {

                        if (page < (food/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "",

                                    "",

                                    "&mainbusinessform=%25"+pvText_form+"%25");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }else if (((pvText_grid=="选择网格")) && ((pvOption2==0 || pvText_form=="主体业态"))) {

                        if (page < (main/20+1)) {

                            search_sendRequestWithOkHttp(

                                    "",

                                    "",

                                    "");

                        }else {

                            mRefreshLayout.finishLoadMoreWithNoMoreData();

                        }

                    }

                }

            }

});

public void search_sendRequestWithOkHttp(String enterpriseName, String supervisionorg, String mainbusinessform) {

    mRefreshLayout.setNoMoreData(false);

    recyclerView.setLayoutManager(new LinearLayoutManager(this));

    recyclerView.addItemDecoration(new DividerItemDecoration(GridSupervisionActivity.this, DividerItemDecoration.VERTICAL_LIST));

    url= "grid/findByExample?page=" + page + "&pageSize=" + pageSize + enterpriseName + supervisionorg + mainbusinessform;

    Log.i("urll",url);

    HttpUtil.sendOkHttpRequest(url,new okhttp3.Callback(){

        @Override

        public void onResponse(Call call, Response response) throws IOException {

            responseData = response.body().string();

            Log.i("search_responseData",responseData);

            parseJSONWithGSON(responseData);

            //handler.post(gridrunnableUi);

        }

        @Override

        public void onFailure(Call call,IOException e){

            String responseData = "网络错误";

            showResponse(responseData);

        }

    });

    gridSupervisionAdapter = new GridAdapter(gridlistDataItemArrayList);

    recyclerView.setAdapter(gridSupervisionAdapter);

    Log.i("recyclerView-----------",".......................................");

}

public void parseJSONWithGSON(String jsonData) {

    Gson gson = new GsonBuilder().create();

    Gridlist gridlist= gson.fromJson(jsonData,Gridlist.class);

    ArrayList<Gridlist> gridlistData = gridlist.getData();

    //Log.i("search_responseData",responseData);

    if (gridlistData != null) {

        if (page == 1) {

            gridlistDataItemArrayList.clear();

        }

        gridlistDataItemArrayList.addAll(gridlistData);

        showResponse("数据加载成功");

        Log.i("search_responseData",".......................................");

    }else {

        showResponse("数据加载失败");

    }

}

private void showResponse(final String response) {

    runOnUiThread(new Runnable() {

        @Override

        public void run() {

            if (response.equals("数据加载成功")||response.equals("无结果")){

                gridSupervisionAdapter.notifyDataSetChanged();

            }else {

                ToastUtil.showToast(GridSupervisionActivity.this,response);

            }

            swipeRefresh.setRefreshing(false);

            mRefreshLayout.finishLoadMore();

            // 在这里进行UI操作,将结果显示到界面上

        }

    });

}

猜你喜欢

转载自blog.csdn.net/LEO_ANDERSON/article/details/83543638