计算价格
***// 第一步 ***
Adapter 写入
//写一个数量方法
jianshuanPrice()
//实现
public void jianshuanPrice() {
//定义一个价格double类型为0
double sum = 0;
//点击选框跟价格关联
for (int i = 0; i < goodslist.size(); i++) {
Goods goods = goodslist.get(i);
goods.check = goods.check && goods.check;
//如果选中进行计算
if (goods.check) {
sum = sum + goods.count * goods.getPrice();
}
}
//在价格方法里判断一下写的回调方法
if (priceListrnter != null) {
priceListrnter.priceListrnter(sum);
}
}
//设置监听器 回调接口
public interface PriceListrnter {
void priceListrnter(double sum);
}
private PriceListrnter priceListrnter;
public void setPriceListrnter(PriceListrnter priceListrnter) {
this.priceListrnter = priceListrnter;
}
//在Activity fragment 展示页面调一下adapter的回调方法
@BindView(R.id.sum)
TextView totalPrice;
//布局里的总价控件
//获取到适配器中的总价
goodsAdapter.setPriceListrnter(new GoodsAdapter.PriceListrnter() {
@Override
public void priceListrnter(double sum) {
totalPrice.setText("合计:¥" + sum + "元");
}});
//选中 加减号
@Override
public void onClick(View v) {
Goods s = (Goods) v.getTag();
//如果是复选框 选中它
if (v.getId() == R.id.goods_check) {
s.check = ((CheckBox) v).isChecked();
}else if ((v.getId()==R.id.jia)){
s.count++;
}else if(v.getId()==R.id.jian){
if (s.count>1){
s.count--;
}else{
Toast.makeText(context,"没有了,不要减啦",Toast.LENGTH_SHORT).show();
}
}
/计算价格方法
//注意千万不要忘记刷新适配器
jianshuanPrice();
notifyDataSetChanged();}
//主页面(展示页面)
全选反选//全选反选:
//布局文件写一个CheckBox控件
@BindView(R.id.xuan)
CheckBox xuan;
//OnCheckedChanged改变监听
@OnCheckedChanged({R.id.xuan})
public void check(CompoundButton compoundButton, boolean check) {
List<Goods> shopList = goodsAdapter.getList();
for (int i = 0; i < shopList.size(); i++) {
Goods goods = shopList.get(i);
goods.check = check;
}
goodsAdapter.jianshuanPrice();
goodsAdapter.notifyDataSetChanged();}