首先要在数据的一级和二级列表中各添加一个boolean数据
在Activity中添加点击组条目选中和不选中
//一级列表 list.get(i).setChtenild(!list.get(i).isChtenild()); for (int j = 0; j <list.get(i).getList().size() ; j++) { list.get(i).getList().get(j).setChild(list.get(i).isChtenild()); } //二级列表 list.get(i).getList().get(i1).setChild(!list.get(i).getList().get(i1).isChild()); //全选 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).setChild(checkbox_fukuan.isChecked()); } list.get(i).setChtenild(checkbox_fukuan.isChecked()); }
在各自的后面添加刷新适配器
adapter.notifyDataSetChanged();
在Adapter中添加框的选中和不选中
组条目的CheckBox
holder.checkBox.setChecked(list.get(i).isChtenild()); holder.checkBox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { list.get(i).setChtenild(!list.get(i).isChtenild()); for (int a=0;a<list.get(i).getList().size();a++){ list.get(i).getList().get(a).setChild(list.get(i).isChtenild()); } notifyDataSetChanged(); } });
子条目的CheckBox
Boods.DataBean.ListBean listBean1 = list.get(i).getList().get(i1); viewdopHolder.checkBox.setChecked(listBean1.isChild());
添加监听计算价格
//个数和价格
private Integer num=1;
double priceont =0.00;
viewdopHolder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { num = Integer.valueOf(viewdopHolder.customLayout.shumu.getText().toString()); double price1 = Double.parseDouble(list.get(i).getList().get(i1).getPrice()+""); double v = price1 * num; if (list.get(i).getList().get(i1).isChild()){ priceont+=v; } else { priceont-=v; } MainActivity.text_zjiage.setText((float)priceont<0?0+"":(float)priceont+""); if (!list.get(i).getList().get(i1).isChild()){ MainActivity.text_zjiage.setText(0.00+""); } } });