布局文件

Adapter类里
public class Adapters extends BaseExpandableListAdapter {
Context context;
List<GBean.DataBean> dataBeans;

public Adapters(Context context, List<GBean.DataBean> dataBeans) {
    this.context = context;
    this.dataBeans = dataBeans;
}

//父条目数量
@Override
public int getGroupCount() {
    if (dataBeans == null) {
        return 0;
    }
    return dataBeans.size();
}

//子条目数量
@Override
public int getChildrenCount(int groupPosition) {
    if (dataBeans == null) {
        return 0;
    }
    return dataBeans.get(groupPosition).getList().size();
}

@Override
public Object getGroup(int groupPosition) {
    return null;
}

@Override
public Object getChild(int groupPosition, int childPosition) {
    return null;
}

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

@Override
public long getChildId(int groupPosition, int childPosition) {
    return 0;
}

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

@Override
public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
    ViewHolder viewHolder;
    if (convertView == null) {
        convertView = LayoutInflater.from(context).inflate(R.layout.fadapter, null);
        viewHolder = new ViewHolder();
        viewHolder.checkBox = convertView.findViewById(R.id.fchecked);
        viewHolder.shopName = convertView.findViewById(R.id.ftext);
        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }
    viewHolder.shopName.setText(dataBeans.get(groupPosition).getSellerName());
    viewHolder.checkBox.setChecked(dataBeans.get(groupPosition).isChecked());
    //父条目点击事件
    viewHolder.checkBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            CheckBox checkBox = (CheckBox) v;
            boolean checked = checkBox.isChecked();
            dataBeans.get(groupPosition).setChecked(checked);
            zchecked(checked, groupPosition);
            boolean qchecked = qchecked();
            box.setChecked(qchecked);
            zongjia();
            notifyDataSetChanged();
        }
    });
    return convertView;
}
//父条目不局
@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
    final ViewHodels viewHodels;
    if (convertView == null) {
        convertView = LayoutInflater.from(context).inflate(R.layout.zadapter, null);
        viewHodels = new ViewHodels();
        viewHodels.checked = convertView.findViewById(R.id.zchenked);
        viewHodels.goodsName = convertView.findViewById(R.id.ztext);
        viewHodels.jiagetext = convertView.findViewById(R.id.jiagetext);
        viewHodels.jia = convertView.findViewById(R.id.jia);
        viewHodels.jian = convertView.findViewById(R.id.jian);
        viewHodels.shuliang = convertView.findViewById(R.id.shuliang);
        convertView.setTag(viewHodels);
    } else {
        viewHodels = (ViewHodels) convertView.getTag();
    }
    viewHodels.goodsName.setText(dataBeans.get(groupPosition).getList().get(childPosition).getTitle());
    viewHodels.checked.setChecked(dataBeans.get(groupPosition).getList().get(childPosition).isChecked());
    viewHodels.jiagetext.setText(dataBeans.get(groupPosition).getList().get(childPosition).getPrice());
    viewHodels.shuliang.setText(dataBeans.get(groupPosition).getList().get(childPosition).getNum());
    viewHodels.jian.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String num = dataBeans.get(groupPosition).getList().get(childPosition).getNum();
            int i = Integer.parseInt(num);
            i--;
            Log.i("AA", "渐渐" + i);
            dataBeans.get(groupPosition).getList().get(childPosition).setNum(i + "");
            String num1 = dataBeans.get(groupPosition).getList().get(childPosition).getNum();
            int i1 = Integer.parseInt(num1);
            viewHodels.shuliang.setText(i1 + "");
            zongjia();
            notifyDataSetChanged();
        }
    });
    //加按钮点击事件
    viewHodels.jia.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String num = dataBeans.get(groupPosition).getList().get(childPosition).getNum();
            int i = Integer.parseInt(num);
            i++;
            dataBeans.get(groupPosition).getList().get(childPosition).setNum(i + "");
            String num1 = dataBeans.get(groupPosition).getList().get(childPosition).getNum();
            int i1 = Integer.parseInt(num1);
            viewHodels.shuliang.setText(i1 + "");
            zongjia();
            notifyDataSetChanged();
        }
    });
    //子复选框点击事件
    viewHodels.checked.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            CheckBox checkBox = (CheckBox) v;
            boolean checked = checkBox.isChecked();
            Log.i("AA", "状态" + checked);
            GBean.DataBean.ListBean listBean = dataBeans.get(groupPosition).getList().get(childPosition);
            listBean.setChecked(checked);
            boolean zquanxuan = zquanxuan(groupPosition);
            dataBeans.get(groupPosition).setChecked(zquanxuan);
            boolean qchecked = qchecked();
            box.setChecked(qchecked);
            zongjia();
            notifyDataSetChanged();
        }
    });
    return convertView;
}

//判断父条目是否全部选中
private boolean qchecked() {
    for (int i = 0; i < dataBeans.size(); i++) {
        boolean checked = dataBeans.get(i).isChecked();
        if (!checked) {
            return false;
        }
    }
    return true;
}

//子条目点之后循环判断是否全部选中
private boolean zquanxuan(int groupPosition) {
    for (int i = 0; i < dataBeans.get(groupPosition).getList().size(); i++) {
        GBean.DataBean.ListBean listBean = dataBeans.get(groupPosition).getList().get(i);
        boolean checked1 = listBean.isChecked();
        if (!checked1) {
            return false;
        }
    }
    return true;
}

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    return false;
}

//点击之后把子条目里的复选框状态全部改变
public void zchecked(boolean checked, int groupPosition) {
    for (int i = 0; i < dataBeans.get(groupPosition).getList().size(); i++) {
        GBean.DataBean.ListBean listBean = dataBeans.get(groupPosition).getList().get(i);
        listBean.setChecked(checked);
    }
}

//全选复选框点击事件
private CheckBox box;
public void setBox(CheckBox box) {
    this.box = box;
    box.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            CheckBox checkBox = (CheckBox) v;
            boolean checked = checkBox.isChecked();
            quanxuan(checked);
            zongjia();
            notifyDataSetChanged();
        }
    });
}

//全选点击事件
private void quanxuan(boolean checked) {
    for (int i = 0; i < dataBeans.size(); i++) {
        List<GBean.DataBean.ListBean> list = dataBeans.get(i).getList();
        dataBeans.get(i).setChecked(checked);
        for (int j = 0; j < list.size(); j++) {
            list.get(j).setChecked(checked);
        }
    }
}

private TextView textView;
public void setTextView(TextView textView) {
    this.textView = textView;
}

//机算总价
private double all;
private void zongjia() {
    for (int i = 0; i < dataBeans.size(); i++) {
        List<GBean.DataBean.ListBean> list = dataBeans.get(i).getList();
        for (int j = 0; j < list.size(); j++) {
            boolean checked = list.get(j).isChecked();
            if (checked) {
                String bargainPrice = list.get(j).getPrice();
                String num = list.get(j).getNum();
                double v1 = Double.parseDouble(num);
                double v = Double.parseDouble(bargainPrice);
                double aa = v * v1;
                all += aa;
                textView.setText(all + "");

            } else {
               all=0;
                textView.setText(all + "");
            }
        }
    }
    notifyDataSetChanged();
}

class ViewHolder {
    TextView shopName;
    CheckBox checkBox;
}

class ViewHodels {
    TextView goodsName;
    CheckBox checked;
    TextView jiagetext;
    Button jia;
    Button jian;
    TextView shuliang;
}

}

父布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <CheckBox
        android:id="@+id/quanxuan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/zong"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="价格为:" />
</LinearLayout>
<ExpandableListView
    android:id="@+id/expandble"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="false"></ExpandableListView>

父条目必须要添加条件
android:focusable=“false”
android:clickable=“true”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值