0

购物车活动中,我允许用户编辑项目的数量,并且随着用户数量的变化而改变总金额,但在这里我面临一个小问题,每当我点击后退按钮时,它都会重置我的数量,为什么?

请看下面的屏幕截图:

![在此处输入图像描述][1]

例如,在上面的屏幕中,我已将我的产品 Veggie 的数量从 1 编辑到 15,并且总数量也发生了变化,但问题是一旦我点击后退按钮,我将再次获得数量 1 而不是 15 的值,我之前输入的

请告诉我如何控制这个?

CartAdapter.java:

    if(cost.getText().length() > 0)
    {
        try
        {
           itemamount = Double.parseDouble(cost.getText().toString());
           Log.d("ProductInformationActivity", "ItemAmount :: " + itemamount);
        }
        catch(NumberFormatException e)
        {
            itemamount=0.00;
            Log.d("ProductInformationActivity", "NumberFormatException :: " + e);
        }
    }

    qty.addTextChangedListener(new TextWatcher() {

        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

            if (!qty.getText().toString().equals("")
                    || !qty.getText().toString().equals("")) {

                // accept quantity by user
                itemquantity = Integer.parseInt(qty.getText()
                        .toString());

                total.setText(new DecimalFormat("##.#").format(itemamount*itemquantity));

            }

        }

        @Override
        public void afterTextChanged(Editable s) {

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

        }

        });

    return vi;      
}       
  }
4

3 回答 3

4

你为什么不保存你的值并将它们填充到你的onCreate()? 您可以使用三种机制中的任何一种来获得您想要的。

  1. 共享偏好
  2. SQLite 数据库
  3. 应用
于 2013-05-06T04:27:47.917 回答
0

考虑到您需要的功能,使用SQLite DB看起来是最好的选择......

于 2013-05-06T04:47:27.053 回答
-1

如果您已经存储了该值并且只想控制后退按钮的工作方式,您可以在您的购物车活动中使用它:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        //Your code
        return true; // so the super method doesn't get called
    }
    return super.onKeyDown(keyCode, event);
}
于 2013-05-06T05:00:35.480 回答