二级列表的购物车-适配器

package com.example.recycler.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.recycler.Activity_show;
import com.example.recycler.AddAndDownview;
import com.example.recycler.R;
import com.example.recycler.bean.childbean;
import com.example.recycler.bean.fatherbean;

import java.util.List;


public class ExpandAdapter extends BaseExpandableListAdapter{
    private  Context ct;
    private List<fatherbean> list;
    private List<List<childbean>> list1;
    private Activity_show ct1;
    private float sum;


    public ExpandAdapter(Context ct, List<fatherbean> list, List<List<childbean>> list1) {
        this.ct = ct;
        this.list = list;
        this.list1 = list1;
    }

    @Override
    public int getGroupCount() {
        return list.size();
    }

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

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

    @Override
    public Object getChild(int i, int i1) {
        return list1.get(i).get(i1);
    }

    @Override
    public long getGroupId(int i) {
        return i;
    }

    @Override
    public long getChildId(int i, int i1) {
        return i1;
    }

    @Override
    public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) {
        ct1 = (Activity_show) this.ct;
        final fatherbean bean = list.get(i);
        final List<childbean> childbeen = list1.get(i);
        view = View.inflate(this.ct, R.layout.fatherview, null);
        TextView textView = (TextView) view.findViewById(R.id.text_f);
        final CheckBox checkBox = (CheckBox) view.findViewById(R.id.cb_father);
        textView.setText(bean.getName());
        checkBox.setChecked(bean.isFlag());
        //复选框点击事件
        checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                boolean checked = checkBox.isChecked();
                if (checked==false){
                    ct1.cb.setChecked(checked);
                }
                bean.setFlag(checked);
                for (int j=0;j<childbeen.size();j++){
                    childbeen.get(j).setFlag(checked);
                }
                notifyDataSetChanged();
                boolean bool=true;
                for (int j =0;j<list.size();j++){
                    if (list.get(j).isFlag()==false){
                        bool=false;
                        break;
                    }
                }
                ct1.cb.setChecked(bool);
            }

        });
        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                boolean checked = checkBox.isChecked();
                List<childbean> beanList = list1.get(i);
                for (int j=0;j<beanList.size();j++){
                    childbean child = beanList.get(j);
                    int count = child.getCount();
                    float price = child.getPrice();
                    if(checked){
                        sum+=price*count;
                    }else{
                        sum-=price*count;
                    }
                }
                ct1.num.setText("总价为:"+sum);
            }
        });
        return view;
    }

    @Override
    public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {
        childbean bean = list1.get(i).get(i1);
        //加载布局
        view= View.inflate(ct, R.layout.childview,null);
        //获取构件
        ImageView img = (ImageView) view.findViewById(R.id.img_child);
        TextView title = (TextView) view.findViewById(R.id.child_title);
        final TextView price = (TextView) view.findViewById(R.id.child_price);
        final AddAndDownview add = (AddAndDownview) view.findViewById(R.id.aadview);
        final CheckBox checkBox = (CheckBox) view.findViewById(R.id.cb_child);
        //修改内容
        price.setText(bean.getPrice()+"");
        title.setText(bean.getTitle());
        checkBox.setChecked(list1.get(i).get(i1).isFlag());
        Glide.with(ct).load(bean.getImgurl()).into(img);
        add.setCount(list1.get(i).get(i1).getCount());
        //自定义构件设置监听
        add.setOnAddDeleteClick(new AddAndDownview.OnAddDeleteClickListener() {
            @Override
            public void onAddClick(View v) {
                int count = list1.get(i).get(i1).getCount();
                list1.get(i).get(i1).setCount(count+1);
                notifyDataSetChanged();
            }

            @Override
            public void onDelClick(View v) {
                int count = list1.get(i).get(i1).getCount();
                if(count!=0){
                    list1.get(i).get(i1).setCount(count-1);
                    notifyDataSetChanged();
                }
            }
        });
        checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                boolean checked = checkBox.isChecked();
                if (checked==false){
                    ct1.cb.setChecked(checked);
                }
                list1.get(i).get(i1).setFlag(checked);
                boolean b=true;
               if (checked){
                   for (int j=0;j<list1.get(i).size();j++){
                       boolean flag = list1.get(i).get(j).isFlag();
                       if (flag==false){
                           b=false;
                       }
                   }
                   //修改父级的选中状态
                   if (b){
                       list.get(i).setFlag(true);
                   }
                   //判断全选按钮
                   boolean bool=true;
                   for (int j =0;j<list1.size();j++){
                       for (int k=0;k<list1.get(j).size();k++){
                           if (list1.get(j).get(k).isFlag()==false){
                               bool=false;
                               break;
                           }
                       }
                   }
                   ct1.cb.setChecked(bool);
               }else{
                   list.get(i).setFlag(false);

               }
                notifyDataSetChanged();
            }
        });
        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                boolean checked = checkBox.isChecked();
                float price1 = list1.get(i).get(i1).getPrice();
                int count = add.getCount();
                if(checked) {
                    sum=sum+price1*count;
                }else{
                    sum=sum-price1*count;
                }
                ct1.num.setText("总价为:"+sum);
            }
        });
        return view;
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值