硅谷商城5--购物车商品选中和商品总价计算
2016-11-06 19:52
387 查看
①在GovaffairPager类中设置
adapter = new GovaffairPagerAdapter(context,datas,checkbox_all,tv_total_price);
②GovaffairPagerAdapter
/** * 显示总商品价格 */ private void showTotalPrice(){ tv_total_price.setText("合计¥"+getTotalPrice()); } /** * 计算购物车里面所选商品总架构 * @return */ private double getTotalPrice(){ double num = 0; if(datas != null && datas.size() >0){ for(int i=0;i<datas.size();i++){ ShoppingCart cart = datas.get(i); //判断是否选中的商品 if(cart.isChecked()){ num = num + cart.getPrice()*cart.getCount(); } } } return num; } //在构造方法中调用 public GovaffairPagerAdapter(final Context context, final List<ShopingCart> datas) { this.context = context; this.datas = datas; cartProvider = new CartProvider(context); showTotalPrice(); }
2_增加商品或者减少商品的时候计算总价格
@Override public void onBindViewHolder(ViewHolder holder, int position) { final ShoppingCart cart = datas.get(position); ...... holder.numberAddSubView.setOnButtonClickListenter(new NumberAddSubView.OnButtonClickListenter() { @Override public void onButtonAddClick(View view, int value) { cart.setCount(value); cartProvider.update(cart); showTotalPrice(); } @Override public void onButtonSubClick(View view, int value) { cart.setCount(value); cartProvider.update(cart); showTotalPrice(); } }); }
3_设置点击某一条item
1_先定义接口和调用
//设置点击某个item的监听 public interface OnItemClickListener{ void onItemClick(View view,int position); } private OnItemClickListener onItemClickListener; /** * 设置某条的监听 * @param onItemClickListener */ public void setOnItemClickListener(OnItemClickListener onItemClickListener) { this.onItemClickListener = onItemClickListener; }
2_调用接口
class ViewHolder extends RecyclerView.ViewHolder { private CheckBox checkbox; ................. public ViewHolder(View itemView) { super(itemView); checkbox = (CheckBox) itemView.findViewById(R.id.checkbox); iv_icon = (ImageView) itemView.findViewById(R.id.iv_icon); ...... itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(onItemClickListener != null){ onItemClickListener.onItemClick(v,getLayoutPosition()); } } }); } }
3_在构造方法中设置监听
public GovaffairPagerAdapter(final Context context, final List<ShopingCart> datas) { this.context = context; this.datas = datas; cartProvider = new CartProvider(context); showTotalPrice(); setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(View view, int position) { //1.设置点击item的状态 ShoppingCart ShoppingCart = datas.get(position); shopingCart.setIsChecked(!shopingCart.isChecked()); notifyItemChanged(position); //2.设置全选和非全选 checkListener(); //3.显示总价格 showTotalPrice(); // Toast.makeText(context,"选中了"+position,Toast.LENGTH_SHORT).show(); } }); } /** * 全选的监听 */ private void checkListener() { int num = 0; if(datas != null && datas.size()>0){ for(int i=0;i<datas.size();i++){ ShoppingCart cart = datas.get(i); //只要有一个没有被选中就把全选设置为未勾选 if(!cart.isChecked()){ checkbox_all.setChecked(false); }else{ num += 1; } } if(datas.size()==num){ checkbox_all.setChecked(true); } } }
4_全选和反选
![](https://images2015.cnblogs.com/blog/1044471/201611/1044471-20161106200255283-2001555209.png)
//把CheckBox 和 TextView 传入到适配器中
private final CheckBox checkbox_all;
private final TextView tv_total_price;
private CartProvider cartProvider;
public GovaffairPagerAdapter(final Context context, final List<ShopingCart> datas, final CheckBox checkbox_all, TextView tv_total_price) {
this.context = context;
this.datas = datas;
this.checkbox_all = checkbox_all;
this.tv_total_price = tv_total_price;
..........................
checkbox_all.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//全选和反选
checkAll_none(checkbox_all.isChecked());
showTotalPrice();
}
});
}
/**
* 全选和反选
* @param ischeck
*/
private void checkAll_none(boolean ischeck){
if(datas != null && datas.size() >0){
for(int i=0;i<datas.size();i++){
ShoppingCart cart = datas.get(i);
cart.setIsChecked(ischeck);
notifyItemChanged(i);
}
}
}
//在GovaffairPager类中设置
adapter = new GovaffairPagerAdapter(context,datas,checkbox_all,tv_total_price);
相关文章推荐
- 购物车 结算功能,选中勾选状态可以显示所有选中的总价还有选中的数量,未选中不进行计算,删除功能
- HTML angular购物车:加减按钮改变数量+全选+低于1时提示删除商品+计算所有商品总价+清空购物车+单独删除+输入内容小于1时,自动变为1+反选
- HTML angular购物车:加减按钮改变数量+全选+低于1时提示删除商品+计算所有商品总价+清空购物车+单独删除+输入内容小于1时,自动变为1+反选
- 硅谷商城4--显示购物车商品
- 购物车中计算checkBox选中总价功能的实现
- js购物车选中商品实现计算商品总价格
- HTML 购物车计算总价+添加或者减少商品数量
- Android仿京东App购物车 二级列表+全选反选+Ok封装+拦截器+结算+商品数量计算
- ECSHOP全站调用购物车显示商品图片,价格,数量,总价等详细信息
- jQuery实现购物车多物品数量的加减+总价计算
- 【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
- jQuery实现购物车多物品数量的加减+总价+删除计算
- 【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
- 动态计算购物车总价(数量可选),nextSibling属性
- 【javascript】根据复选框选中的商品,计算总额 | 根据选择的样式进行变换
- 淘宝京东购物车价格计算,商品店铺联动js
- Js写购物车全选全不选计算单价总价代码
- Android-----购物车(包含侧滑删除,商品筛选,商品增加和减少,价格计算,店铺分类等)
- Angular购物车计算总价
- ###Jsp+Servlet购物商城day03.1:商品添加到购物车。重点笔记