热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

AndroidOkhttp请求查询购物车的实例代码

下面小编就为大家分享一篇AndroidOkhttp请求查询购物车的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

查询购物车的model层

public class SelectCarModel {
 private String url="http://120.27.23.105/product/getCarts";
 private HashMap map = new HashMap<>();
 public void verifySelectCarInfo(int uid, final ISelectCarPresenter iSelectCarPresenter){
  map.put("uid",uid+"");
  OkHttpUtils.getInstance().doPost(url,map, new CallBack() {
   @Override
   public void onFailed(String msg) {
    iSelectCarPresenter.onFailed("请求失败");
   }
   @Override
   public void onSuccess(String request) {
    SelectCarBean selectCarBean = GsonUtils.getInstance().fromJson(request, SelectCarBean.class);
    String code = selectCarBean.getCode();
    if ("0".equals(code)){
     List data = selectCarBean.getData();
     iSelectCarPresenter.onSuccess(data);
    }else{
     iSelectCarPresenter.onFailed("请求失败");
    }
   }
  });
 }
}

查询购物车的接口

m层的

public interface ISelectCarPresenter {
 void onFailed(String msg);
 void onSuccess(List data);
}

p层的

public interface ISelectCarView {
 void onFailed(String msg);
 void onSuccess(List data);
}

查询购物车的presenter层

public class SelectCarPresenter implements ISelectCarPresenter{
 private ISelectCarView iSelectCarView;
 private SelectCarModel selectCarModel;
 public SelectCarPresenter (ISelectCarView iSelectCarView){
  this.iSelectCarView = iSelectCarView;
  selectCarModel = new SelectCarModel();
 }
 //执行集合信息
 public void excuteSelectCarData(int uid){
  //传到model
  selectCarModel.verifySelectCarInfo(uid,this);
 }
 @Override
 public void onFailed(String msg) {
  iSelectCarView.onFailed(msg);
 }
 @Override
 public void onSuccess(List data) {
  iSelectCarView.onSuccess(data);
 }
}

查询购物车的view层

public class ShoppingCartActivity extends AppCompatActivity implements ISelectCarView,View.OnClickListener{
 private boolean isLogin;
 private SelectCarPresenter selectCarPresenter;
 private ExpandableListView car_elv;
 private List glist = new ArrayList<>();
 private List> clist = new ArrayList<>();
 private CarExpandAdapter carExpandAdapter;
 private TextView edit_tv;
 private CheckBox chooseAll;
 private TextView totalPrice;
 private TextView btnAmount;
 private boolean isAll;
 private double p;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_shoppingcar);
  //初始化数据
  init();
  chooseAll.setOnClickListener(this);
  btnAmount.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    Intent intent = new Intent(ShoppingCartActivity.this, IndentActivity.class);
    intent.putExtra("price",p+"");
    startActivity(intent);
   }
  });
 }
 /**
  * 查询购物车
  */
 private void selectShoppingCar() {
   selectCarPresenter = new SelectCarPresenter(this);
   selectCarPresenter.excuteSelectCarData(3381);
   carExpandAdapter = new CarExpandAdapter(this,glist,clist,this);
   car_elv.setAdapter(carExpandAdapter);
 }
 /**
  * 初始化属性
  */
 private void init() {
  car_elv = (ExpandableListView) findViewById(R.id.car_elv);
  edit_tv = (TextView) findViewById(R.id.edit_tv);
  chooseAll = (CheckBox) findViewById(R.id.chooseAll);
  totalPrice = (TextView) findViewById(R.id.totalPrice);
  btnAmount = (TextView) findViewById(R.id.btnAmount);
  //登录购物车
  selectShoppingCar();
 }
 @Override
 public void onFailed(String msg) {
 }
 @Override
 public void onSuccess(List data) {
  glist.clear();
  clist.clear();
  for(int i = 0;i list = data.get(i).getList();
   List cl = new ArrayList<>();
   for (int j = 0; j

view层布局


 
  
  
 
 
 
  

  

  
 

二级购物车列表的适配器

public class CarExpandAdapter extends BaseExpandableListAdapter{
 private Context context;
 private List groupList;
 private List> childList;
 private ShoppingCartActivity s;
 public static boolean flog;
 public CarExpandAdapter(Context context, List groupList, List> childList,ShoppingCartActivity s) {
  this.cOntext= context;
  this.groupList = groupList;
  this.childList = childList;
  this.s = s;
 }
 @Override
 public int getGroupCount() {
  return groupList.size();
 }
 @Override
 public int getChildrenCount(int i) {
  return childList.get(i).size();
 }
 @Override
 public Object getGroup(int i) {
  return groupList.get(i);
 }
 @Override
 public Object getChild(int i, int i1) {
  return childList.get(i).get(i1);
 }
 @Override
 public long getGroupId(int i) {
  return i;
 }
 @Override
 public long getChildId(int i, int i1) {
  return i1;
 }
 @Override
 public boolean hasStableIds() {
  return false;
 }

 //第一级列表viewhodel
 class GroupViewHolder{
  CheckBox group_box;
  TextView group_tv;
 }
 //第二级列表的viewhodel
 class ChildViewHodel{
  CheckBox child_box;
  ImageView child_iv;
  TextView child_tv_name;
  TextView child_tv_attr;
  TextView child_tv_price;
  TextView child_tv_num;
  TextView child_tv_minus;
  TextView child_tv_show_num;
  TextView child_tv_add;
  Button delete;
 }
 @Override
 public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) {
  final GroupViewHolder holder;
  if (view==null){
   holder = new GroupViewHolder();
   view = View.inflate(context, R.layout.group_layout,null);
   holder.group_box = view.findViewById(R.id.group_box);
   holder.group_tv = view.findViewById(R.id.group_tv);
   view.setTag(holder);
  }else{
   holder = (GroupViewHolder) view.getTag();
  }
  holder.group_tv.setText(groupList.get(i).getName());
  holder.group_box.setChecked(groupList.get(i).isFlag());
  holder.group_box.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    //group布尔值变成选中状态
    groupList.get(i).setFlag(holder.group_box.isChecked());
    //遍历Group的集合
    for (int i=0;i

适配器的一级布局


 
 

适配器二级布局


 
 
 
  
  
   
  
  
   
   
   
    
    
    
   
  
 
 

bean类Child

public class Child {
 /*
 false,
 list.get(j).getTitle(),
 (float) list.get(j).getPrice(),
 list.get(j).getImages(),
 list.get(j).getNum()
  */
 private boolean flag;
 private String title;
 private double price;
 private String image;
 private int num;
 private String color;
 private int pid;
 public Child(boolean flag, String title, double price, String image, int num,String color,int pid) {
  this.flag = flag;
  this.title = title;
  this.price = price;
  this.image = image;
  this.num = num;
  this.color = color;
  this.pid = pid;
 }
 public boolean isFlag() {
  return flag;
 }
 public void setFlag(boolean flag) {
  this.flag = flag;
 }
 public String getTitle() {
  return title;
 }
 public void setTitle(String title) {
  this.title = title;
 }
 public double getPrice() {
  return price;
 }
 public void setPrice(double price) {
  this.price = price;
 }
 public String getImage() {
  return image;
 }
 public void setImage(String image) {
  this.image = image;
 }
 public int getNum() {
  return num;
 }
 public void setNum(int num) {
  this.num = num;
 }
 public String getColor() {
  return color;
 }
 public void setColor(String color) {
  this.color = color;
 }
 public int getPid() {
  return pid;
 }
 public void setPid(int pid) {
  this.pid = pid;
 }
}

group类

public class Group {
 private boolean flag;
 private String name;
 public Group(boolean flag, String name) {
  this.flag = flag;
  this.name = name;
 }
 public boolean isFlag() {
  return flag;
 }
 public void setFlag(boolean flag) {
  this.flag = flag;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}

以上这篇Android Okhttp请求查询购物车的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Android 九宫格布局详解及实现:人人网应用示例
    本文深入探讨了人人网Android应用中独特的九宫格布局设计,解析其背后的GridView实现原理,并提供详细的代码示例。这种布局方式不仅美观大方,而且在现代Android应用中较为少见,值得开发者借鉴。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
  • 本文总结了在使用Ionic 5进行Android平台APK打包时遇到的问题,特别是针对QRScanner插件的改造。通过详细分析和提供具体的解决方法,帮助开发者顺利打包并优化应用性能。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文探讨了在 PHP 中处理 JSON 编码时中文字符显示为 Unicode 转义序列的问题,并提供了多种有效的解决方法,包括使用正则表达式替换、URL 编码以及利用 PHP 5.4 及以上版本提供的 JSON_UNESCAPED_UNICODE 选项。 ... [详细]
author-avatar
66顺主管386711
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有