一:计算购物车的总价(总价的全选和全不选控制价格)
--------------------------布局----------------------------------
<CheckBox
android:id="@+id/sum_price"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="¥:0.0"
/>
1,创建一个方法,用来计算总价钱。
/**
* 计算总价
*/
public void getTotalPrice(){
double totalprice = 0;
for(CartBean.DataBean datas : data){
for(CartBean.DataBean.ListBean list : datas.list){
if(list.isProjectChecked){
totalprice += list.price * list.projectNum;
}
}
}
sum_price.setText("$"+totalprice);
}
2.给多选框设置点击监听
//点击总价监听
sum_price.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
for(CartBean.DataBean data : data){
data.isChecked = true;
for(CartBean.DataBean.ListBean list : data.list){
list.isProjectChecked = true;
}
}
}else{
for(CartBean.DataBean data : data){
data.isChecked = false;
for(CartBean.DataBean.ListBean list : data.list){
list.isProjectChecked = false;
}
}
}
xrcvAdapter.notifyDataSetChanged();//刷新适配器
getTotalPrice();//调用上面定义的总价方法
}
});
二,实现商家选中和不选中计算总价
//【商家选中监听】
xrcvVH.checkbox_sj.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dataBean.isChecked = xrcvVH.checkbox_sj.isChecked();
for(CartBean.DataBean.ListBean list : dataBean.list){
list.isProjectChecked = dataBean.isChecked;//一级列表选中同步二级列表选中
}
notifyDataSetChanged();//刷新适配器
if(cartUICallBack != null){
cartUICallBack.notifyCart();//通过接口回调实现调用总价的方法
}
}
});
三,实现商品的全选然后商家的选中,以及计算总价
//商品全选和反选
xrcvCH.project_checkbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(CartBean.DataBean.ListBean lists : list){
list.get(i).isProjectChecked = xrcvCH.project_checkbox.isChecked();
if(!lists.isProjectChecked){//如果第二级列表没有全部选中,那么一级列表不选中为false
cartCallBack.notifyCartItem(false,listBean.pos);
return;
}//如果第二级列表全部选中,那么一级列表选中为true
cartCallBack.notifyCartItem(true,listBean.pos);
}
}
});