RecyclerView上拉刷新,下拉加载
2017-10-15 18:49
435 查看
Activity界面方法
请求网络的工具类
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.layout_swipe_refresh); initView();//初始化资源id initDataFromServer(1); recycler.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (newState == RecyclerView.SCROLL_STATE_IDLE) { int lastVisiblePosition =linearLayoutManager.findLastVisibleItemPosition(); if (lastVisiblePosition >= linearLayoutManager.getItemCount() - 1) { count++; initDataFromServer(count); } }); public void onRefresh() { if(count<1){ initDataFromServer(count); Toast.makeText(MainActivity.this,"已经是最新数据了!",Toast.LENGTH_SHORT).show(); } else{ initDataFromServer(count); Toast.makeText(MainActivity.this,"数据刷新了!",Toast.LENGTH_SHORT).show(); } //数据重新加载完成后,提示数据发生改变,并且设置现在不在刷新 adapter.notifyDataSetChanged(); mRefreshLayout.setRefreshing(false); } }); } //调用网络工具类请求网络数据 private void initDataFromServer(int index) { HttpUtils http = new HttpUtils(); http.setCallBack(this); //默认的page参数为1 http.NetWorkFromServer(index); } //初始化view private void initView() { //找到资源id tv = (TextView) findViewById(R.id.ttt); recycler = (RecyclerView) findViewById(R.id.recycler); linearLayoutManager = new LinearLayoutManager(this); //设置显示效果为线性 recycler.setLayoutManager(linearLayoutManager); } //通过接口回调返回数据 @Override public void callBack(final ResponseBean responseBean) { runOnUiThread(new Runnable() { @Override public void run() { //设置适配器 adapter = new MyRecyclerView(responseBean.data, MainActivity.this); recycler.setAdapter(adapter); } }); }
请求网络的工具类
public class HttpUtils { //定义变量用于接收接口对象 private static CallBackResponse callbackResponse; public void setCallBack(CallBackResponse callbackResponse) { this.callbackResponse = callbackResponse; } public void NetWorkFromServer(int page) { String url = "http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page=" + page; OkHttpClient ok = new OkHttpClient();//创建okhttp对象 //设置url final Request request = new Request.Builder() .url(url) .build(); Call call = ok.newCall(request);//得到call对象 call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Log.e("TAG","失败了"); } @Override public void onResponse(Call call, Response response) throws IOException { //response.body().string()方法只能使用一次,不然拿不到数据 if (response.isSuccessful() && response.body() != null){ Gson gson = new Gson(); ResponseBean responseBean = gson.fromJson(response.body().string(), ResponseBean.class); callbackResponse.callBack(responseBean); } } }); } }
相关文章推荐
- RecyclerView上拉刷新,下拉加载
- RecyclerView上啦刷新下拉加载
- Android开发之RecyclerView的上拉刷新和下拉加载
- recyclerview上拉刷新下拉加载
- Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载
- okhhtp + recyclerview + 上拉刷新下拉加载 + 点击事件
- Android XRecyclerView简单实现上拉刷新,下拉加载
- RecyclerView使用详解一代替ListView(点击事件,添加头布局,上拉刷新下拉加载)
- RecyclerView的上拉刷新与下拉加载
- RecyclerView上拉刷新下拉加载
- 支持下拉加载刷新的RecyclerView
- RecyclerView上拉刷新,下拉加载更多
- recyclerview,okHttp,布局切换,springView上拉刷新下拉加载
- Android RecyclerView下拉刷新 & 上拉加载更多
- Android RecyclerView (四)总结(一)-(三)并且实现下拉刷新数据,上拉加载数据功能
- RecyclerView的上拉刷新,和下拉加载
- (再次更新)打造RecyclerView万能适配器,上拉刷新,下拉加载
- MVP模式的OKhttp请求网络数据,xrecyclerview上拉刷新,下拉加载
- RecyclerView之下拉刷新、下拉加载的实现
- MVP实现RecyclerView上拉刷新,下拉加载