购物车的实现

来源:互联网 发布:mac air 鼠标不停晃动 编辑:程序博客网 时间:2024/04/27 22:47
private LinkedList<Boolean> listbool=new LinkedList<Boolean>();
    private List<SQLBean> list;
    private CartAdapter cart;
    private CheckBox checkall;
    private TextView tvall;

    private double sum=0;




   checkall.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                boolean flag=checkall.isChecked();
                sum=0;
                for (int i = 0; i <cart.getSelect().size(); i++) {
                    listbool.set(i, flag);
                    if(flag==false){
                        sum=0;
                        DecimalFormat format=new DecimalFormat("###.00");
                        tvall.setText( ""+ format.format(sum));
                    }else{
                        sum=sum+list.get(i).getPrice()*list.get(i).getCount();
                        DecimalFormat format=new DecimalFormat("###.00");
                        tvall.setText( ""+ format.format(sum));
                    }
                }
                cart.notifyDataSetChanged();

            }



class CartAdapter extends BaseAdapter {
        
        
        public CartAdapter() {
            for(int i=0;i<list.size();i++){
                listbool.add(false);
            }
        }
        public LinkedList<Boolean> getSelect(){
            return listbool;
        }

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            return list.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            final ViewHoder vh;
            if (convertView == null) {
                vh = new ViewHoder();
                convertView = View.inflate(getActivity(), R.layout.cart_item, null);
                vh.che = (CheckBox) convertView.findViewById(R.id.checkBox_a);
                vh.img = (ImageView) convertView.findViewById(R.id.image_cart_);
                vh.tvN = (TextView) convertView.findViewById(R.id.tv_cart_goods_name);
                vh.tvC = (TextView) convertView.findViewById(R.id.tv_cart_count);
                vh.tvP = (TextView) convertView.findViewById(R.id.tv_cart_price);
                convertView.setTag(vh);
            } else {
                vh = (ViewHoder) convertView.getTag();
            }
            ImageLoader.getInstance().displayImage(list.get(position).getPath(), vh.img);
            vh.tvC.setText("数量:" + list.get(position).getCount() + "");
            vh.tvN.setText(list.get(position).getName() + "");
            vh.tvP.setText("¥" + list.get(position).getPrice() + "");
            vh.che.setChecked(listbool.get(position));
            vh.che.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    if(vh.che.isChecked()==false){
                        //点中的时候改成相反的值
                    listbool.set(position, ! listbool.get(position));
                    sum=sum-list.get(position).getPrice()*list.get(position).getCount();
                    DecimalFormat format=new DecimalFormat("###.00");
                    tvall.setText( ""+ format.format(sum));
                    }else{
                        //点中的时候改成相反的值
                        listbool.set(position, ! listbool.get(position));
                        sum=sum+list.get(position).getPrice()*list.get(position).getCount();
                        DecimalFormat format=new DecimalFormat("###.00");
                        tvall.setText( ""+ format.format(sum));
                    }
                    if(listbool.contains(false)){
                        checkall.setChecked(false);
                    }else{
                        checkall.setChecked(true);
                        
                    }
                    notifyDataSetChanged();
                }
            });
            return convertView;
        }

        class ViewHoder {
            ImageView img;
            CheckBox che;
            TextView tvN, tvP, tvC;
        }
    }

0 0