XRecyclerView

  • 上拉加载、下滑刷新
    • 依赖
    • bean类
    • 布局文件
    • 适配器代码
    • activity实现

上拉加载、下滑刷新

依赖

 //XRecyclerViewapi('com.jcodecraeer:xrecyclerview:1.5.9') {exclude group: 'com.android.support'}//picassoimplementation 'com.squareup.picasso:picasso:2.5.2'//okhttpimplementation 'com.squareup.okhttp3:okhttp:4.2.2'

bean类

         public class Food {/*** ret : 1* data : [{"id":"8289","title":"油焖大虾","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289.jpg","collect_num":"1669","food_str":"大虾 葱 生姜 植物油 料酒","num":1669},{"id":"2127","title":"四川回锅肉","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2127.jpg","collect_num":"1591","food_str":"猪肉 青蒜 青椒 红椒 姜片","num":1591},{"id":"30630","title":"超简单芒果布丁","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/31/30630.jpg","collect_num":"1544","food_str":"QQ糖 牛奶 芒果","num":1544},{"id":"9073","title":"家常红烧鱼","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/10/9073.jpg","collect_num":"1425","food_str":"鲜鱼 姜 葱 蒜 花椒","num":1425},{"id":"10097","title":"家常煎豆腐","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10097.jpg","collect_num":"1419","food_str":"豆腐 新鲜红椒 青椒 葱花 油","num":1419},{"id":"10509","title":"水煮肉片","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10509.jpg","collect_num":"1341","food_str":"瘦猪肉 生菜 豆瓣酱 干辣椒 花椒","num":1341},{"id":"46968","title":"红糖苹果银耳汤","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/47/46968.jpg","collect_num":"1252","food_str":"银耳 苹果 红糖","num":1252},{"id":"10191","title":"麻婆豆腐","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10191.jpg","collect_num":"1221","food_str":"豆腐 肉末 生抽 白糖 芝麻油","num":1221},{"id":"2372","title":"皮蛋瘦肉粥","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2372.jpg","collect_num":"1151","food_str":"大米 皮蛋 猪肉 油条 香葱","num":1151},{"id":"2166","title":"蚂蚁上树","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2166.jpg","collect_num":"1144","food_str":"红薯粉 肉 姜 蒜 花椒","num":1144},{"id":"2262","title":"糖醋肉","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2262.jpg","collect_num":"1078","food_str":"猪肉 红椒 黄椒 洋葱 蛋清","num":1078},{"id":"9971","title":"鱼香豆腐","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/10/9971.jpg","collect_num":"1010","food_str":"豆腐 木耳 胡萝卜 香葱 番茄酱","num":1010},{"id":"10172","title":"干煸四季豆","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10172.jpg","collect_num":"993","food_str":"四季豆 干辣椒 蒜头 酱油 糖","num":993},{"id":"2685","title":"胡萝卜肉末蒸蛋","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2685.jpg","collect_num":"926","food_str":"胡萝卜 肉 蛋 生抽 盐","num":926},{"id":"9972","title":"虎皮青椒","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/10/9972.jpg","collect_num":"892","food_str":"青辣椒 大蒜 香醋 白糖 生抽","num":892},{"id":"10437","title":"叉烧排骨","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10437.jpg","collect_num":"803","food_str":"排骨 李锦记叉烧酱 植物油 清水 油菜","num":803},{"id":"2892","title":"\u201c五行\u201d彩蔬汤","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2892.jpg","collect_num":"760","food_str":"黑木耳 玉米 牛蒡 胡萝卜 西兰花","num":760},{"id":"2348","title":"麻辣肉丝面","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2348.jpg","collect_num":"758","food_str":"面条 肉丝 淀粉 酱油 辣椒","num":758},{"id":"33783","title":"美人豆浆","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/34/33783.jpg","collect_num":"757","food_str":"黄豆 红豆 绿豆 黑豆 黑米","num":757},{"id":"10044","title":"土豆炖翅根","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10044.jpg","collect_num":"756","food_str":"土豆 翅根 葱 姜 料酒","num":756}]*/private int ret;private List<DataBean> data;public int getRet() {return ret;}public void setRet(int ret) {this.ret = ret;}public List<DataBean> getData() {return data;}public void setData(List<DataBean> data) {this.data = data;}public static class DataBean {/*** id : 8289* title : 油焖大虾* pic : http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289.jpg* collect_num : 1669* food_str : 大虾 葱 生姜 植物油 料酒* num : 1669*/private String id;private String title;private String pic;private String collect_num;private String food_str;private int num;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getPic() {return pic;}public void setPic(String pic) {this.pic = pic;}public String getCollect_num() {return collect_num;}public void setCollect_num(String collect_num) {this.collect_num = collect_num;}public String getFood_str() {return food_str;}public void setFood_str(String food_str) {this.food_str = food_str;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}}
}

布局文件

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><com.jcodecraeer.xrecyclerview.XRecyclerViewandroid:id="@+id/xrv"android:layout_width="match_parent"android:layout_height="match_parent"></com.jcodecraeer.xrecyclerview.XRecyclerView></LinearLayout>

适配器代码

public class XrvAdapter extends RecyclerView.Adapter<XrvAdapter.MyViewHolder> {private List<Food.DataBean> dataBeans = new ArrayList<>();private Context context;public XrvAdapter(Context context) {this.context = context;}public void setData(List<Food.DataBean> newData){if (newData == null){return;}dataBeans.clear();dataBeans.addAll(newData);notifyDataSetChanged();}@NonNull@Overridepublic MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.xrv_item, parent, false);return new MyViewHolder(view);}@Overridepublic void onBindViewHolder(@NonNull MyViewHolder holder, int position) {Picasso.with(context).load(dataBeans.get(position).getPic()).into(holder.imageView);holder.textView.setText(dataBeans.get(position).getTitle());}@Overridepublic int getItemCount() {return dataBeans.size();}class MyViewHolder extends RecyclerView.ViewHolder{private ImageView imageView;private TextView textView;public MyViewHolder(@NonNull View itemView) {super(itemView);imageView = itemView.findViewById(R.id.show_iv);textView = itemView.findViewById(R.id.show_tv);}}}

activity实现

public class MainActivity extends AppCompatActivity {private XrvAdapter adapter;private XRecyclerView xrv;private List<Food.DataBean> dataBeans = new ArrayList<>();private int page = 1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();adapter = new XrvAdapter(MainActivity.this);xrv.setAdapter(adapter);adapter.setData(dataBeans);doget("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1");}public void doget(String url) {Request request = new Request.Builder().url(url).get().build();Call call = new OkHttpClient.Builder().build().newCall(request);call.enqueue(new Callback() {@Overridepublic void onFailure(@NotNull Call call, @NotNull IOException e) {}@Overridepublic void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {try {JSONObject jsonObject = new JSONObject(response.body().string());JSONArray data = jsonObject.getJSONArray("data");for (int i = 0; i < data.length(); i++) {JSONObject jsonObject1 = data.getJSONObject(i);String title = jsonObject1.getString("title");String pic = jsonObject1.getString("pic");Food.DataBean dataBean = new Food.DataBean();dataBean.setPic(pic);dataBean.setTitle(title);dataBeans.add(dataBean);}runOnUiThread(new Runnable() {@Overridepublic void run() {adapter.setData(dataBeans);xrv.refreshComplete();}});} catch (Exception e) {e.printStackTrace();}}});}private void initView() {xrv = (XRecyclerView) findViewById(R.id.xrv);//设置布局风格xrv.setLayoutManager(new LinearLayoutManager(this));xrv.setLoadingMoreEnabled(true);xrv.setPullRefreshEnabled(true);xrv.setLoadingListener(new XRecyclerView.LoadingListener() {@Overridepublic void onRefresh() {page++;doget("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page="+page);}@Overridepublic void onLoadMore() {page++;doget("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page="+page);}});}
}

XRecyclerView、Okhttp相关推荐

  1. android封装网络请求界面,轻松搞定 android MVP 架构、okHttp 网络模块封装 的 项目...

    CommonMvp commonMvp 能做什么? 1.mvp 实现 model view presenter 业务和界面解耦 2.整合 网络 请求 3.简化网络调用流程 4.整合状态栏和标题栏 实现 ...

  2. HttpClient、OKhttp、RestTemplate对比

    一.三者的对比 HttpClient:代码复杂,还得操心资源回收等.代码很复杂,冗余代码多,不建议直接使用. RestTemplate: 是 Spring 提供的用于访问Rest服务的客户端, Res ...

  3. 接口测试——HtmlUnit、OkHttp

    HtmlUnit.OkHttp HtmlUnit 简单介绍 简单demo OkHttp 简单了解 简单demo HtmlUnit 简单介绍 HtmlUnit相比于HttpClient功能更加强大,就像 ...

  4. Android经典著名的百大框架源码解析(retrofit、Okhttp、Glide、Zxing、dagger等等)

    我们Android程序员每天都要和源码打交道.经过数年的学习,大多数程序员可以"写"代码,或者至少是拷贝并修改代码.而且,我们教授编程的方式强调编写代码的艺术,而不是如何阅读代码. ...

  5. 跨平台微信网络开源Mars与网络框架Okhttp、Volley、Retrofit,Cookie持久化

    > 1. Mars 移动端IM网络层跨平台组件库Mars- https://github.com/Tencent/mars Android.iOS.OS X 平台的 demo(微信开源Mars的 ...

  6. 彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想

    OkHttp 现在统治了Android的网络请求领域,最常用的框架是:Retrofit+okhttp.OkHttp的实现原理和设计思想是必须要了解的,读懂和理解流行的框架也是程序员进阶的必经之路,代码 ...

  7. 实现一个全链路监控平台很难吗?Pinpoint、skywalking、zipkin,哪个实现比较好?...

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往 ...

  8. 【OkHttp】OkHttp 源码分析 ( 同步 / 异步 Request 请求执行原理分析 )

    OkHttp 系列文章目录 [OkHttp]OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) [OkHttp]Android 项目导入 OkHttp ( 配置依赖 | 配置 ...

  9. 【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )

    OkHttp 系列文章目录 [OkHttp]OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) [OkHttp]Android 项目导入 OkHttp ( 配置依赖 | 配置 ...

最新文章

  1. Linux多线程的进阶理解
  2. NYOJ 358 取石子(五)
  3. Java Store_java之Properties集合中的方法store
  4. 实现本机拷贝带进度的方法
  5. 百度云cdn设置州五年制大专_[百度云CDN]配置过程坑点集合
  6. 什么是工业级交换机?工业交换机作用有哪些?
  7. 上位机获取单片机发来的数据并进行检验(完整版,附完整源码)
  8. android 自定义特效,Android自定义FloatingText仿点赞+1特效
  9. javaweb(05):tomcat服务器的安装、启动,IDEA整合Tomcat创建动态web工程
  10. 代码对比工具,就用这7个!
  11. 基于WEKA实现时间序列的预测
  12. 常用数据接口汇总,百度、谷歌、头条、微博指数,高校名单,疫情数据...
  13. web前端 vue 面试题(一)
  14. linux远程关机重启命令,Linux关机命令解析
  15. 动态RAM和静态RAM的区别(浅学)
  16. shell脚本 插队
  17. 文件夹怎么加密 怎么给文件夹加密
  18. 深圳大学大学计算机考试科目,深圳大学计算机考研科目有哪些
  19. 算法-经典趣题-青蛙过河
  20. 【珍藏版】 2012Java开发工程师必备精品资料(115个)

热门文章

  1. som神经网络聚类简单例子_基因表达聚类分析之初探SOM - 自组织特征图
  2. AWE Asia 2020:影创“MR+行业”落地应用案例分享
  3. 【接口技术】实验五:可编程并行接口8255
  4. 2012腾讯校园招聘面试经历
  5. 贫富差距 wealth gap
  6. 28岁感想——焦虑与自我认知的并存
  7. QQ空间照片上传HTML代码演示
  8. unity中查找游戏对象的方法总结
  9. 强力删除流氓软件_流氓软件那些事之三 ——关起门来打流氓
  10. ssl证书验证失败打不开网页