Android 购物车(二)

购物车的适配器:


public class ShoppingCartAdapter extends BaseAdapter {

    private Context context;
    private List<Test> loans;
    private LayoutInflater inflater;
    private static HashMap<Integer, Boolean> isSelected;
    private static HashMap<Integer, Integer> numbers;
    private Handler handler;
    int num;// 商品数量

    static class ViewHolder { // 自定义控件集合
        public CheckBox ck_select;
        public ImageView pic_goods;
        public TextView id_goods;
        public TextView integral_goods;
        public LinearLayout layout;

    }

    /**
     * 实例化Adapter
     *
     * @param context
     * @param data
     */
    public ShoppingCartAdapter(Context context, Handler handler, List<Test> data) {
        this.context = context;
        this.inflater = LayoutInflater.from(context);
        this.loans = data;
        this.handler = handler;
        isSelected = new HashMap<Integer, Boolean>();
        numbers = new HashMap<Integer, Integer>();
        initDate();
    }

    private void initDate() {
        for (int i = 0; i < loans.size(); i++) {
            getIsSelected().put(i, false);
        }
    }

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

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

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

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // 自定义视图
        ViewHolder itemView = null;
        if (convertView == null) {
            // 获取list_item布局文件的视图
            itemView = new ViewHolder();
            convertView = inflater.inflate(R.layout.item_gouwu,
                    null);
            // 获取控件对象
            itemView.ck_select = (CheckBox) convertView
                    .findViewById(R.id.ck_select);
            itemView.pic_goods = (ImageView) convertView
                    .findViewById(R.id.pic_goods);
            itemView.id_goods = (TextView) convertView
                    .findViewById(R.id.id_goods);
            itemView.integral_goods = (TextView) convertView
                    .findViewById(R.id.integral_goods);
            convertView.setTag(itemView);
        } else {
            itemView = (ViewHolder) convertView.getTag();
        }

        init(itemView, position);

        itemView.ck_select.setChecked(getIsSelected().get(position));
        if (getIsSelected().get(position)) {
            itemView.ck_select.setChecked(true);
        } else {
            itemView.ck_select.setChecked(false);
        }



        Test test = loans.get(position);

        itemView.integral_goods.setText((CharSequence) test.getIntegral());
        itemView.pic_goods.setImageResource(R.drawable.ic_launcher);
        return convertView;
    }

    private void init(final ViewHolder itemView, final int position) {

        itemView.ck_select
                .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                    @Override
                    public void onCheckedChanged(CompoundButton buttonView,
                                                 boolean isChecked) {
                        isSelected.put(position, true);
                        getIsSelected().put(position, isChecked);
                        itemView.ck_select.setChecked(getIsSelected().get(
                                position));
                        handler.sendMessage(handler.obtainMessage(10,
                                getTotalPrice()));

                        Iterator iterator = isSelected.entrySet().iterator();
                        List<Boolean> array = new ArrayList<Boolean>();
                        while (iterator.hasNext()) {
                            HashMap.Entry entry = (HashMap.Entry) iterator
                                    .next();
                            Integer key = (Integer) entry.getKey();
                            Boolean val = (Boolean) entry.getValue();
                            array.add(val);
                        }
                        handler.sendMessage(handler.obtainMessage(11, array));
                    }
                });
    }

    /**
     * 计算选中商品的积分
     *
     * @return 返回需要付费的总积分
     */
    private float getTotalPrice() {
        Test bean = null;
        float totalPrice = 0;
        for (int i = 0; i < loans.size(); i++) {
            bean = loans.get(i);
            if (ShoppingCartAdapter.getIsSelected().get(i)) {
                totalPrice +=Integer.valueOf(bean.getIntegral());
            }
        }
        return totalPrice;
    }

    public static HashMap<Integer, Boolean> getIsSelected() {
        return isSelected;
    }

    public static void setIsSelected(HashMap<Integer, Boolean> isSelected) {
        ShoppingCartAdapter.isSelected = isSelected;
    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值