• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 硅谷商城5--购物车商品选中和商品总价计算,5--购物车

硅谷商城5--购物车商品选中和商品总价计算,5--购物车

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了硅谷商城,js购物车总价,购物车计算总价,硅谷,硅谷亮城写字楼等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

硅谷商城5--购物车商品选中和商品总价计算,5--购物车


1_商品总价格计算

①在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_全选和反选

   //把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);

  

  

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 硅谷商城第二版1--主框架,硅谷商城第二版1--
  • 硅谷商城第二版3--分类模块,硅谷商城第二版3--
  • 硅谷商城第二版5--个人中心模块,硅谷商城第二版5--
  • 硅谷商城第二版6--购物车模块,6--购物车
  • 硅谷商城3--购物车数据存储器,3--购物车
  • 硅谷商城4--显示购物车商品,硅谷商城4--购物车
  • 硅谷商城5--购物车商品选中和商品总价计算,5--购物车
  • 硅谷商城6--购物车编辑实现,硅谷商城6--购物车

相关文章

  • 2017-05-26解决 Could not find com.android.tools.build:gradle 问题,couldnotfindntldr
  • 2017-05-26安卓四大组件之广播,安卓四大组件
  • 2017-05-26linux设备驱动程序之时钟管理(4)----原来是孩儿他爹娘
  • 2017-05-26使用flume+kafka+storm构建实时日志分析系统
  • 2017-05-26android AutoCompleteTextView 实现手机号格式化,附带清空历史的操作,autocomplete清空数据
  • 2018-01-28揭开AssetBundle庐山真面目(二)
  • 2017-05-26弧形菜单(Android),弧形菜单android
  • 2017-05-26网络连接异常处理工具,网络连接异常处理
  • 2017-05-26Kotlin的数据类:节省很多行代码(KAD 10),kotlin很多行
  • 2017-05-26linux设备驱动程序之时钟管理(2)----又见结构

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • AndroidStudio项目打包成jar,androidstudiojar
    • android studio 继承AppCompatActivity后标题栏隐藏问题,appcompatactivity
    • 当EditText编辑时 hint 在 6.0 手机上显示不出来,edittexthint
    • debian8下apache2.4.x部署mysql认证的subversion
    • [android] 手机卫士读取联系人,android卫士
    • Android环境搭建和编写helloworld,androidhelloworld
    • 三星手机拍照,从图库选择照片旋转问题完美解决,三星手机图库
    • android studio导入PullToRefresh教程
    • android 图片加载库 Glide 的使用介绍,
    • 【读书笔记】【Android 开发艺术探索】第3章 View 的事件体系

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有