一次在SQLite中插入多行

时间:2018-06-30 10:04:17

标签: java android android-sqlite

我有一个购物车,一次只能插入一个产品,但是现在我一次只能插入多个产品。我使用复选框来选择项目。

我需要更改什么才能允许将多个产品插入购物车?

这是我的适配器类:

public class AdapterPrice extends BaseAdapter {

    ArrayList<ModelPrice> listPrice;
    private Context context;
    int selectedPosition = 0;

    public AdapterPrice(Context context, ArrayList<ModelPrice> listPrice) {
        this.context = context;
        this.listPrice = listPrice;
    }

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

    @Override
    public Object getItem(int i) {
        return null;
    }

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

    @Override
    public View getView(final int position, View view, ViewGroup viewGroup) {

        final AdapterPrice.ViewHolder holder;
        if (view == null) {

            holder = new AdapterPrice.ViewHolder();
            view = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.item_packing, null);

            holder.txtOffer = view.findViewById(R.id.txtOffer);
            holder.txtPrice = view.findViewById(R.id.txtPrice);
            holder.txtQty = view.findViewById(R.id.txtQty);
            //holder.radioWeight = view.findViewById(R.id.radioWeight);
            holder.checkBox = view.findViewById(R.id.checkboxWeight);
            holder.icMinus = view.findViewById(R.id.icMinus);
            holder.icPlus = view.findViewById(R.id.icPlus);


            view.setTag(holder);
        } else {
            holder = (AdapterPrice.ViewHolder) view.getTag();

        }

        //holder.radioWeight.setText((UtilMethods.decimalFormater(listPrice.get(position).getWeight())) + listPrice.get(position).getUnit());
        holder.checkBox.setText((UtilMethods.decimalFormater(listPrice.get(position).getWeight())) + listPrice.get(position).getUnit());
        double packMrpd = (double) listPrice.get(position).getQty() * listPrice.get(position).getMrp();
        double offerMrpd = (double) listPrice.get(position).getQty() * listPrice.get(position).getSellMrp();
        holder.txtPrice.setText("Rs." + UtilMethods.decimalFormater(packMrpd));
        holder.txtOffer.setText("Rs." + UtilMethods.decimalFormater(offerMrpd));
        holder.txtQty.setText(listPrice.get(position).getQty() + "");
        /*holder.radioWeight.setChecked(position == selectedPosition);
        holder.radioWeight.setTag(position);*/
        holder.checkBox.setChecked(position == selectedPosition);

        Log.d("POSITION CB>>>>>>",position+"");
        //holder.checkBox.setTag(position);


        if (holder.checkBox.isChecked()) {
            String forString = "for " + UtilMethods.decimalFormater(listPrice.get(selectedPosition).getWeight()) + "" + listPrice.get(selectedPosition).getUnit();
            SpannableString forStr = new SpannableString(forString);
            forStr.setSpan(new UnderlineSpan(), 0, forString.length(), 0);
            //txtFor.setText(forStr);
            //txtOferPrice.setText("Rs." + UtilMethods.decimalFormater(listPrice.get(selectedPosition).getSellMrp()) + "");

            double saveMrp = ((double) listPrice.get(position).getQty() * listPrice.get(position).getMrp()) - ((double) listPrice.get(position).getQty() * listPrice.get(position).getSellMrp());
            txtSAve.setText("Rs." + (UtilMethods.decimalFormater(saveMrp)) + "");

            if (saveMrp <= 0) {
                offerLayout.setVisibility(View.GONE);
            }
            mQty = listPrice.get(position).getQty();
            mMrp = listPrice.get(position).getMrp();
            mSellMrp = listPrice.get(position).getSellMrp();
            mweight = listPrice.get(position).getWeight();
            mUnit = listPrice.get(position).getUnit();

            seletUnit = (1 * selectedPosition);
        }


        /*holder.checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                selectedPosition = (Integer) view.getTag();
                notifyDataSetChanged();
            }
        });*/

        holder.icMinus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                int cQty = listPrice.get(position).getQty();
                if (cQty > 1) {
                    cQty = listPrice.get(position).getQty() - 1;
                    listPrice.get(position).setQty(cQty);
                    // double totalMrp = (double) listPrice.get(position).getQty() * listPrice.get(position).getMrp();
                    //holder.txtPrice.setText((String.format("%.2f", totalMrp)) + "");

                   /* if (position == selectedPosition) {
                        double saveMrp = totalMrp - (listPrice.get(selectedPosition).getSellMrp() * (double) listPrice.get(position).getQty());
                        // txtSAve.setText("Rs."+saveMrp + "");
                    }*/
                    notifyDataSetChanged();
                }

            }
        });
        holder.icPlus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int cQty = listPrice.get(position).getQty();
                cQty = listPrice.get(position).getQty() + 1;
                listPrice.get(position).setQty(cQty);
                //double totalMrp = (double) listPrice.get(position).getQty() * listPrice.get(position).getMrp();
                // holder.txtPrice.setText((String.format("%.2f", totalMrp)) + "");

               /* if (position == selectedPosition) {
                    double saveMrp = totalMrp - (listPrice.get(selectedPosition).getSellMrp() * (double) listPrice.get(position).getQty());
                    // txtSAve.setText(saveMrp + "");
                }*/
                notifyDataSetChanged();

            }
        });
        return view;
    }

    public class ViewHolder {

        private TextView txtPrice, txtQty, txtOffer;
        private RadioButton radioWeight;
        CheckBox checkBox;
        private ImageView icPlus, icMinus;

    }
}

这是我通过SQLIte将商品插入购物车的地方:

 private void addToCArt() {


    ModelCart mcart = new ModelCart();
    mcart.setProductName(Config.LIST_SINGAL_PRODUCT.get(tempPosition).getProductName());
    mcart.setPid(Config.LIST_SINGAL_PRODUCT.get(tempPosition).getPid());
    mcart.setImageUrl(Config.LIST_SINGAL_PRODUCT.get(tempPosition).getImageTag1());

    List<String> attrId = new ArrayList<>();
    for (ModelPrice mmp : Config.LIST_SINGAL_PRODUCT.get(tempPosition).getListPrice()) {

        attrId.add(mmp.getWid() + "," + mmp.getWeight() + "," + mmp.getUnit());
    }
    String aData = TextUtils.join("-", attrId);
    mcart.setQty(mQty);
    mcart.setWeight(mweight);
    mcart.setUnit(mUnit);
    mcart.setMrp(mMrp);
    mcart.setSellMrp(mSellMrp);
    mcart.setAttributeData(aData);
    mcart.setSelectUnit(seletUnit);
    mcart.setSelecAttrId((Config.LIST_SINGAL_PRODUCT.get(tempPosition).getListPrice()).get(seletUnit).getWid());

    db.insetCArt(mcart);

    /*int isQty = db.isProduct(Config.LIST_SINGAL_PRODUCT.get(tempPosition).getPid());
    if (isQty != -1 && isQty != 0) {
        int tQ = mQty + isQty;
        mcart.setQty(tQ);
        db.updateCart(mcart);
    } else {
        db.insetCArt(mcart);
    }*/


    /*CartFragment orderFrg = new CartFragment();
    Bundle args = new Bundle();
    orderFrg.setArguments(args);
    getFragmentManager().beginTransaction().replace(R.id.frmae, orderFrg).addToBackStack(null).commit();
    */
}

0 个答案:

没有答案
相关问题