MyCart

news/2024/9/23 3:50:41/

//*********************************fragment**************************************************************************************************

//购物车接口的实现
//***************************************************************
cartAdapter.setOnCartListener(new CartAdapter.OnCartListener() {@Overridepublic void onGroupChecked(int groupPosition) {boolean allCheckedOnGroup = cartAdapter.isAllCheckedOnGroup(groupPosition);cartAdapter.setGoodsCheckedOnGroup(groupPosition, !allCheckedOnGroup);cartAdapter.notifyDataSetChanged();refreshBottom();}@Overridepublic void onGoodsChecked(int groupPosition, int childPosition) {cartAdapter.setGoodsChecked(groupPosition, childPosition);cartAdapter.notifyDataSetChanged();refreshBottom();}@Overridepublic void onGoodsNumChang(int sellerid, int pid, int num, String selected, int groupPosition, int childPosition) {cartAdapter.setGoodsNum(groupPosition, childPosition, num);cartAdapter.notifyDataSetChanged();refreshBottom();//联网更新数据presenter.getUpdateCart(uid + "", sellerid + "", pid + "", selected, num + "");}@Overridepublic void onRemoveGoods(final int groupPosition, final int childPosition, final String pid) {AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());builder.setMessage("删除当前商品?");builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {cartAdapter.removeGoods(groupPosition, childPosition);//判断group的长度是否为0cartAdapter.setGroup(groupPosition);cartAdapter.notifyDataSetChanged();refreshBottom();//联网删除presenter.deleteCart(uid, Integer.parseInt(pid));}});builder.setNegativeButton("取消", null);AlertDialog alertDialog = builder.create();alertDialog.show();}
});
//************************************************************
//展开所有一级条目
for (int i = 0; i < data.size(); i++) {cartEx.expandGroup(i);
}
//刷新底部
refreshBottom();
//全选反选,不能使用setOnCheckedChangeListener监听,而要用点击监听
cartQuanxuan.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {boolean allGoodsSelected = cartAdapter.isAllGoodsSelected();cartAdapter.setAllGoodsChecked(!allGoodsSelected);cartAdapter.notifyDataSetChanged();//更新uirefreshBottom();}
});
public void refreshBottom() {//所有商品都选中,将全选按钮选中boolean allGoodsSelected = cartAdapter.isAllGoodsSelected();cartQuanxuan.setChecked(allGoodsSelected);//设置所有商品数量cartSum.setText("去结算(" + cartAdapter.getSum() + ")");//设置所有选中商品的总价cartTotal.setText("合计:¥" + cartAdapter.getTotalPrice());
}

//*********************************adapter**************************************************************************************************

package com.xm2xiu.newjd.adapter;import android.content.Context;
import android.net.Uri;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.CheckBox;
import android.widget.TextView;import com.facebook.drawee.view.SimpleDraweeView;
import com.xm2xiu.newjd.diyview.AddDeleteView;
import com.xm2xiu.newjd.R;
import com.xm2xiu.newjd.bean.Cart;import java.util.List;/*** author:Created by YangYong on 2018/7/16 0016.*/
public class CartAdapter extends BaseExpandableListAdapter {private List<Cart.DataBean> list;private CheckBox seller_check;private CheckBox goods_check;private Cart.DataBean.ListBean bean;private Context context;public CartAdapter(List<Cart.DataBean> list) {this.list = list;}@Overridepublic int getGroupCount() {return list.size();}@Overridepublic int getChildrenCount(int groupPosition) {return list.get(groupPosition).getList().size();}@Overridepublic Object getGroup(int groupPosition) {return list.get(groupPosition);}@Overridepublic Object getChild(int groupPosition, int childPosition) {return list.get(groupPosition).getList().get(childPosition);}@Overridepublic long getGroupId(int groupPosition) {return groupPosition;}@Overridepublic long getChildId(int groupPosition, int childPosition) {return childPosition;}@Overridepublic boolean hasStableIds() {return true;}@Overridepublic View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {context = parent.getContext();if (convertView == null) {convertView = View.inflate(parent.getContext(), R.layout.seller_item, null);}TextView seller_name = convertView.findViewById(R.id.seller_name);seller_check = convertView.findViewById(R.id.seller_check);//************************************group点击监听seller_check.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (onCartListener != null) {onCartListener.onGroupChecked(groupPosition);}}});//如果当前group中的所有商品都被选中,那就把group选中boolean selectedOnGroup = isSelectedOnGroup(groupPosition);seller_check.setChecked(selectedOnGroup);seller_name.setText(list.get(groupPosition).getSellerName());return convertView;}private boolean isSelectedOnGroup(int groupPosition) {List<Cart.DataBean.ListBean> list = this.list.get(groupPosition).getList();for (Cart.DataBean.ListBean bean : list) {if (bean.getSelected() == 0) {return false;}}return true;}@Overridepublic View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, final ViewGroup parent) {if (convertView == null) {convertView = View.inflate(parent.getContext(), R.layout.goods_item, null);}bean = list.get(groupPosition).getList().get(childPosition);SimpleDraweeView goods_img = convertView.findViewById(R.id.goods_img);TextView goods_title = convertView.findViewById(R.id.goods_title);TextView goods_price = convertView.findViewById(R.id.goods_price);goods_check = convertView.findViewById(R.id.goods_check);//处理imgurlString imgUrl = getImgUrl(bean.getImages());goods_img.setImageURI(Uri.parse(imgUrl));goods_title.setText(bean.getTitle());goods_price.setText("¥"+bean.getBargainPrice());//根据集合数据设置复选框选中状态goods_check.setChecked(bean.getSelected() == 1);//************************************goods_check.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (onCartListener != null) {onCartListener.onGoodsChecked(groupPosition, childPosition);}}});//设置加减器监听AddDeleteView goods_ad = convertView.findViewById(R.id.goods_ad);goods_ad.setOnAddDeleteViewClick(new AddDeleteView.OnAddDeleteViewClick() {@Overridepublic void onNumChange(int num) {if (onCartListener != null) {Cart.DataBean.ListBean bean = list.get(groupPosition).getList().get(childPosition);onCartListener.onGoodsNumChang(bean.getSellerid(), bean.getPid(), num,bean.getSelected()+"", groupPosition, childPosition);}}});//长按删除当前条目convertView.setOnLongClickListener(new View.OnLongClickListener() {@Overridepublic boolean onLongClick(View v) {Cart.DataBean.ListBean bean = CartAdapter.this.list.get(groupPosition).getList().get(childPosition);if (onCartListener!=null){onCartListener.onRemoveGoods(groupPosition,childPosition,bean.getPid()+"");}return true;}});goods_ad.setSum(bean.getNum());return convertView;}private String getImgUrl(String images) {int i = images.indexOf("!");return images.substring(0, i);}@Overridepublic boolean isChildSelectable(int groupPosition, int childPosition) {return true;}//计算总数public int getSum() {int sum = 0;for (int i = 0; i < list.size(); i++) {for (int j = 0; j < list.get(i).getList().size(); j++) {if (list.get(i).getList().get(j).getSelected() == 1) {int num = list.get(i).getList().get(j).getNum();sum += num;}}}return sum;}//结算总价public float getTotalPrice() {int sum = 0;float price = 0f;for (int i = 0; i < list.size(); i++) {for (int j = 0; j < list.get(i).getList().size(); j++) {if (list.get(i).getList().get(j).getSelected() == 1) {int num = list.get(i).getList().get(j).getNum();double bargainPrice = list.get(i).getList().get(j).getBargainPrice();price += (float) (num * bargainPrice);}}}return price;}//判断所有商品是都都被选中public boolean isAllGoodsSelected() {for (int i = 0; i < list.size(); i++) {for (int j = 0; j < list.get(i).getList().size(); j++) {if (list.get(i).getList().get(j).getSelected() == 0) {//如果有一个没选中返回falsereturn false;}}}return true;}//改变单个group中所有商品的选中状态public void setGoodsCheckedOnGroup(int groupPosition, boolean groupChecked) {List<Cart.DataBean.ListBean> list = this.list.get(groupPosition).getList();for (Cart.DataBean.ListBean listBean : list) {listBean.setSelected(groupChecked ? 1 : 0);}}//判断单个group中所有商品是否都被选中public boolean isAllCheckedOnGroup(int groupPosition) {List<Cart.DataBean.ListBean> list = this.list.get(groupPosition).getList();for (Cart.DataBean.ListBean listBean : list) {if (listBean.getSelected() == 0) {return false;}}return true;}//改变集合中所有商品的状态public void setAllGoodsChecked(boolean check) {for (int i = 0; i < list.size(); i++) {for (int j = 0; j < list.get(i).getList().size(); j++) {list.get(i).getList().get(j).setSelected(check ? 1 : 0);}}}//改变某个商品的状态public void setGoodsChecked(int groupPosition, int childPosition) {//***京东未解之谜1.复用bean会造成复选框取消不了
//        list.get(groupPosition).getList().get(childPosition).setSelected(bean.getSelected() == 0 ? 1 : 0);Cart.DataBean.ListBean bean = list.get(groupPosition).getList().get(childPosition);bean.setSelected(bean.getSelected() == 0 ? 1 : 0);}//修改某个商品的数量public void setGoodsNum(int groupPosition, int childPosition, int num) {list.get(groupPosition).getList().get(childPosition).setNum(num);}//从集合删除某个商品public void removeGoods( int groupPosition,  int childPosition){list.get(groupPosition).getList().remove(childPosition);}//判断某个group长度是否为0public void setGroup(int groupPosition){List<Cart.DataBean.ListBean> listBeans =list.get(groupPosition).getList();if(listBeans.size()==0){list.remove(groupPosition);}}public interface OnCartListener {void onGroupChecked(int groupPosition);void onGoodsChecked(int groupPosition, int childPosition);void onGoodsNumChang(int sellerid, int pid, int num,String selected, int groupPosition, int childPosition);void onRemoveGoods(int groupPosition, int childPosition,String pid);}private OnCartListener onCartListener;public void setOnCartListener(OnCartListener onCartListener) {this.onCartListener = onCartListener;}
}

 


http://www.ppmy.cn/news/390152.html

相关文章

[MyCat]MyCat下载及安装

1MyCat下载及安装 1.1 MySQL安装与启动 JDK&#xff1a;要求jdk必须是1.7及以上版本 MySQL&#xff1a;推荐mysql是5.5以上版本 MySQL安装与启动步骤如下&#xff1a;( 步骤1-5省略 ) &#xff08;1&#xff09;将MySQL的服务端和客户端安装包&#xff08;RPM&#xff09;上传到…

MyPsnCard 我的奖杯卡 V1.0 发布

应用简介 本应用是一个android widget程序&#xff0c;用于在android系统中&#xff0c;根据用户输入的PSNID等信息&#xff0c; 动态生成用户的Portable ID信息&#xff0c;也就是常说的奖杯卡信息。 应用特性 无需登陆PSN&#xff0c;获取任何指定PSNID的奖杯信息 支持自定…

卡片 .....

小蓝有很多数字卡片&#xff0c;每张卡片上都是数字 00 到 99。 小蓝准备用这些卡片来拼一些数&#xff0c;他想从 11 开始拼出正整数&#xff0c;每拼一个&#xff0c;就保存起来&#xff0c;卡片就不能用来拼其它数了。 小蓝想知道自己能从 11 拼到多少。 例如&#xff0c;当…

android+sim卡软件,超级SIM卡APP

超级SIM卡APP是你的私人数据保存中心&#xff0c;你可以将手机中的数据存储到里面&#xff0c;换机后可一键恢复所有数据。兼容主流安卓手机的数据格式&#xff0c;备份时数据以密文存储&#xff0c;保证数据安全。 【功能说明】 1、笔记功能——您的私人笔记本&#xff0c;可记…

Dao层、Service层、Entity层、Servlet层、Utils层

这几天在复习高数&#xff0c;还有刷题。 B&#xff1a; 第五周任务 [Cloned] - Virtual Judge (vjudge.net) http://t.csdn.cn/S3imr G&#xff1a; 第五周任务 [Cloned] - Virtual Judge (vjudge.net) http://t.csdn.cn/UVgfK Dao层是数据访问层Service层是业务逻辑层…

Cards

Java 训练营 数组 长度与遍历数据元素 使用.length 属性获取当前数组的长度, 长度就是数组中元素的个数. package day05; ​ public class Demo01 {public static void main(String[] args) {/** 数组的长度*/String[] names {"Tom", "Andy", "J…

Android MyCard支付

MyCard支付&#xff1a; 1、通过商务联系MyCard进行技术对接&#xff0c;获得最新MyCardPaySDK.jar和接入文档 2、导入MyCardPaySDK.jar 3、根据MyCard提供文档设置AndroidManifest.xml 4、根据自身需求确定是走SDK支付方式还是WebView支付方式 4-1、SDK支付方式 MyCa…