二級列表ExpandableListView的CheckBox使用
阿新 • • 發佈:2019-01-09
首先要在資料的一級和二級列表中各新增一個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+""); } } });