购物车

public class CarAdpter extends BaseExpandableListAdapter implements DeleteView{
    private List<CarBean.DataBean> list;
    private Context context;
    public   boolean isCheckAll = false;
    private ImageView img_check_all;
    private TextView text_Price;
    DeletePresenters deletePresenters;
    public void setText_Price(TextView text_Price) {
        this.text_Price = text_Price;
    }

    public void setImg_check_all(ImageView img_check_all) {
        this.img_check_all = img_check_all;
    }

    public CarAdpter(Context context) {
        this.context = context;
        this.list = new ArrayList<>();
    }
    public void expandGroup(ExpandableListView listView) {
        for (int i = 0; i < getGroupCount(); i++) {
            listView.expandGroup(i);
        }
    }
   public void addData(List<CarBean.DataBean> dataBeans){
        list.addAll(dataBeans);
        notifyDataSetChanged();
   }


  public void checkAll(){
        isCheckAll = true;
        for (CarBean.DataBean dataBean : list){
            dataBean.setIsclick(true);
            for (CarBean.DataBean.ListBean listBean : dataBean.getList()){
                listBean.setSelected(1);
            }
        }
        getPrice();
        updateUi();
  }
    public void noCheckAll(){
        isCheckAll = false;
        for (CarBean.DataBean dataBean : list){
            dataBean.setIsclick(false);
            for (CarBean.DataBean.ListBean listBean : dataBean.getList()){
                listBean.setSelected(0);
            }
        }
        getPrice();
        updateUi();
    }
    @Override
    public int getGroupCount() {
        return list.size();
    }

    @Override
    public int getChildrenCount(int i) {
        return list.get(i).getList().size();
    }

    @Override
    public CarBean.DataBean getGroup(int i) {
        return list.get(i);
    }

    @Override
    public CarBean.DataBean.ListBean getChild(int i, int i1) {
        return list.get(i).getList().get(i1);
    }

    @Override
    public long getGroupId(int i) {
        CarBean.DataBean group = getGroup(i);
        return group.getSellerid();
    }

    @Override
    public long getChildId(int i, int i1) {
        CarBean.DataBean.ListBean child = getChild(i, i1);
        return child.getPid();
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }
   public  void updateUi(){
       if (isCheckAll) {
           img_check_all.setImageResource(R.drawable.ic_checked);
       } else {
           img_check_all.setImageResource(R.drawable.ic_uncheck);
       }
       notifyDataSetChanged();;
   }
    public  void getPrice(){
        int sum = 0;
        //未选中的数量
        int uncheck = 0;
        //购物车商品数量
        int psum = 0;
        for (CarBean.DataBean dataBean : list){
            psum = dataBean.getList().size();
            if(dataBean.isIsclick()){
                for (CarBean.DataBean.ListBean listBeans : dataBean.getList()){
                    if(listBeans.getSelected() == 1){
                        int price = (int)Double.parseDouble(listBeans.getPrice()+"");
                        sum = sum+price*listBeans.getNum();
                    }else {
                        uncheck+=1;
                    }
                }
            }else {
                uncheck+=dataBean.getList().size();
            }
        }
        if(isCheckAll){
            img_check_all.setImageResource(R.drawable.ic_checked);
        }else {
            img_check_all.setImageResource(R.drawable.ic_uncheck);
        }
        text_Price.setText("¥:"+sum);
        onclikPrice.price(sum);
    }
    @Override
    public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) {
        GroupHolder holder;
        if(view==null){
            view = View.inflate(context,R.layout.cargroup,null);
            holder = new GroupHolder(view);
            view.setTag(holder);
        }else {
            holder = (GroupHolder) view.getTag();
        }
        holder.textView.setText(list.get(i).getSellerName());
        final CarBean.DataBean dataBean = list.get(i);
        if(dataBean.isIsclick()){
            holder.imageView.setImageResource(R.drawable.ic_checked);
        }else {
            holder.imageView.setImageResource(R.drawable.ic_uncheck);
        }
        holder.imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                List<CarBean.DataBean.ListBean> listBeans = list.get(i).getList();
                if(list.get(i).isIsclick()){
                    list.get(i).setIsclick(false);
                }else {
                    list.get(i).setIsclick(true);
                }
                for (CarBean.DataBean.ListBean listbean : listBeans){
                    if(list.get(i).isIsclick()){
                        listbean.setSelected(1);
                    }else {
                        listbean.setSelected(0);
                    }
                }
                getPrice();
                notifyDataSetChanged();
            }
        });
        return view;
    }

    @Override
    public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {
        ChildHolder holder;
        if(view==null){
            view = View.inflate(context,R.layout.carchild,null);
            holder = new ChildHolder(view);
            view.setTag(holder);
        }else {
            holder = (ChildHolder) view.getTag();
        }
        holder.textView1.setText(list.get(i).getList().get(i1).getTitle());
        holder.textView2.setText(list.get(i).getList().get(i1).getPrice()+"");
        String images = list.get(i).getList().get(i1).getImages();
        String s = images.split("\\|")[0];
        ImageLoader.getInstance().displayImage(s,holder.imageView, App.getoPetions());
        final CarBean.DataBean.ListBean child = getChild(i, i1);
        final int selected = child.getSelected();
        if(selected==1){
            holder.imageView1.setImageResource(R.drawable.ic_checked);
        }else {
            holder.imageView1.setImageResource(R.drawable.ic_uncheck);
        }
        deletePresenters = new DeletePresenters(this);
        holder.imageView1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(list.get(i).getList().get(i1).getSelected()==1){
                    list.get(i).getList().get(i1).setSelected(0);
                    Log.i("SE",child.getSelected()+"");
                }else {
                    list.get(i).getList().get(i1).setSelected(1);
                    Log.i("SE",child.getSelected()+"");
                }
                notifyDataSetChanged();
                clickProductCheck(child,i);
            }

        });
        holder.addSumView.setSum(child.getNum());
        holder.addSumView.setSumClickListener(new AddSumView.SumClickListener() {
            @Override
            public void sumClick(int psum) {
             child.setNum(psum);
             getPrice();
            }
        });
        holder.button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int pid = child.getPid();
                SharedPreferences sharedPreferences = context.getSharedPreferences("mobile.db", Context.MODE_PRIVATE);
                boolean login = sharedPreferences.getBoolean("login", false);
                int uid = sharedPreferences.getInt("uid", 0);

                deletePresenters.getDelete(uid,pid);
            }
        });
        return view;
    }
   private void clickProductCheck(CarBean.DataBean.ListBean product, int spos) {
        //获取当前商品的店铺信息
        CarBean.DataBean group = getGroup(spos);

        int sum = 0;//统计产品选中数量

        for (CarBean.DataBean.ListBean p : group.getList()) {
            if (p.getSelected() == 1) {//判断当前店铺有无选中产品
                sum = +1;//统计数量
            }
        }
        if (sum == 0) {//无产品选中
            group.setIsclick(false);
        } else {//有产品选中
            group.setIsclick(true);
        }

        //计算价格
        getPrice();

        notifyDataSetChanged();
    }
    @Override
    public boolean isChildSelectable(int i, int i1) {
        return false;
    }

    @Override
    public void getDeleteList(DeleteCar deleteCar) {
        Toast.makeText(context,deleteCar.getMsg(),Toast.LENGTH_LONG).show();
    }

    static class GroupHolder{
        TextView textView;
        ImageView imageView;
        public GroupHolder(View view){
            textView = view.findViewById(R.id.cartext);
            imageView = view.findViewById(R.id.cargroupimage);
        }
    }
    static class ChildHolder{
        TextView textView1,textView2;
        ImageView imageView,imageView1;
        AddSumView addSumView;
        Button button;
        public ChildHolder(View view){
            textView1 = view.findViewById(R.id.cartext1);
            textView2 = view.findViewById(R.id.cartext2);
            imageView = view.findViewById(R.id.carimage);
            imageView1 = view.findViewById(R.id.childimageView3);
            addSumView = view.findViewById(R.id.caraddview);
            button = view.findViewById(R.id.carbutton2);
        }
    }
    OnclikPrice onclikPrice;

    public void setOnclikPrice(OnclikPrice onclikPrice) {
        this.onclikPrice = onclikPrice;
    }

    public interface OnclikPrice{
        void price(int prcie);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值