购物车二级联动实现逻辑

//主

viewHolderOne.one_check.setChecked(shopBean.check);

//使用一下

viewHolderOne.one_check.setTag(shopBean);

//选中

viewHolderOne.one_check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    ShopBean s = (ShopBean) v.getTag();
    s.check = ((CheckBox) v).isChecked();
    //选中父控件把子控件全部选中
    if (s.check) {
        for (int i = 0; i < shopBean.shoppingCartList.size(); i++) {
            GoodsBean goodsBean = shopBean.shoppingCartList.get(i);
            goodsBean.check = s.check;
        }
    } else if (!s.check) {//全不选
        for (int i = 0; i < shopBean.shoppingCartList.size(); i++) {
            GoodsBean goodsBean = shopBean.shoppingCartList.get(i);
            goodsBean.check = s.check;
        }
    }
    jisuangPrice();
    chlidAll();
    notifyDataSetChanged();

}

});
//子

viewHolderTwo.two_check.setChecked(goodsBean.check);

//使用一下

viewHolderTwo.two_check.setTag(goodsBean);

//选中

viewHolderTwo.two_check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    GoodsBean g = (GoodsBean) v.getTag();
    CheckBox checkBox = (CheckBox) v;

    g.check = checkBox.isChecked();
    if (checkBox.isChecked()) {
        a++;
    } else {
        a--;
    }
    if (a >= shoplist.get(groupPosition).shoppingCartList.size()) {
        shoplist.get(groupPosition).check = true;
    } else {
        shoplist.get(groupPosition).check = false;
    }
    jisuangPrice();
    chlidAll();
    notifyDataSetChanged();
}

});
//联动全选

public void chlidAll() {
double num = 0;
boolean isChlikedAll = false;
for (int i = 0; i < shoplist.size(); i++) {
    ShopBean shopBean = shoplist.get(i);
    for (int j = 0; j < shopBean.shoppingCartList.size(); j++) {
        GoodsBean goodsBean = shopBean.shoppingCartList.get(i);
        if (goodsBean.check) {
            isChlikedAll = true;
        } else {
            isChlikedAll = false;
        }
    }
}
dataCall.isCheckedAll(isChlikedAll, num);

}

//计算价格方法

public void jisuangPrice() {
int sum = 0;
int num = 0;
for (int i = 0; i < shoplist.size(); i++) {
    ShopBean shopBean = shoplist.get(i);
    //为了联动,先给父控件为true && 一个为true 他就是true  一个false 都是 false
    shopBean.check = true;
    for (int j = 0; j < shopBean.shoppingCartList.size(); j++) {
        GoodsBean goodsBean = (GoodsBean) shopBean.shoppingCartList.get(j);
        //&& 一个为true 他就是true  一个false 都是 false
        shopBean.check = shopBean.check && goodsBean.check;//下边联动上边 取消点击一个子控件 父控件也取消
        if (goodsBean.check) {//如果选中计算
            sum = sum + goodsBean.count * goodsBean.price;
            //去结算
            num += goodsBean.count;
        }

    }
    //回调接口传值
    if (priceListene != null) {
        priceListene.getHttpData(sum, num);
    }
}

}
//加减

 @Override
  public void onClick(View v) {
  int sum = 0;
  int num = 0;
  GoodsBean goodsBean = (GoodsBean) v.getTag();
  if (v.getId() == R.id.two_jia) {//当它加的时候
      sum = sum + goodsBean.count * goodsBean.price;
      goodsBean.count++;
      num += goodsBean.count;
  } else if (v.getId() == R.id.two_jian) {//减
      if (goodsBean.count > 1) {
          sum = sum + goodsBean.count * goodsBean.price;
          goodsBean.count--;
          num += goodsBean.count;
      }

  }
  if (JiaListene != null) {
      JiaListene.getData(sum, num);
  }
  //千万不要忘刷新
  notifyDataSetChanged();

}

//成功失败
//greenrodao

private List list=new ArrayList<>();
@Override
 public void suesscc(Object o) {
     Result> result = (Result>) o;
GoodsBeanDao goodsBeanDao = DaoMaster.newDevSession(MainActivity.this, GoodsBeanDao.TABLENAME).getGoodsBeanDao();
for (int i = 0; i < result.result.size(); i++) {
    for (int j = 0; j 

}

@Override
public void finl(Result result) {
Toast.makeText(MainActivity.this, result.message + “”, Toast.LENGTH_SHORT).show();
}

你可能感兴趣的:(购物车二级联动实现逻辑)