3

我正在编写一个购物车应用程序,我允许用户在其中选择要购买的物品并将他们需要的物品添加到购物车中,为此我给出了两个不同的选项卡,

第一个标签,浏览产品

第二个选项卡,浏览购物车中的项目 [用户添加]

在这里,我面临一个小问题。每当我更改商品数量时,我都不会在购物车中更新数量,而是会更改总价

所以,告诉我我需要在代码中添加什么来更改数量,如何在选项卡之间移动时更新数量

我在 ViewCartActivity.java 下的 onResume() 中编写了以下代码:

@Override
protected void onResume() 
{
    super.onResume();
    if (Constants.mItem_Detail.size() == 0) 
    {
        return;
    }

    Double mGTotal = Double.parseDouble(Constants.mItem_Detail.get(0).get(SingleTrackActivity.KEY_TOTAL));
    for (int i = 1; i < Constants.mItem_Detail.size(); i++) 
    {   
    mGTotal = mGTotal + Double.parseDouble(Constants.mItem_Detail.get(i).get(SingleTrackActivity.KEY_TOTAL));
    }
    mGrandTotal = String.valueOf(mGTotal);
    mTxtViewGrandTotal.setText(mGrandTotal);
    myTextVeiwGrandTotal.setText(mGrandTotal);
    mTxtViewGrandTotal.setText(new DecimalFormat("##.##").format(mGTotal));
    mTotal = String.valueOf(Constants.mItem_Detail.size());
    mItems.setText(mTotal);
}

请看下面的屏幕截图,我已经将一个项目的数量从 1 更新到 10,因此我的总金额发生了变化,但数量没有任何变化,只有 1,每当我在标签之间移动时,我都面临这个问题:

在此处输入图像描述

使用 Products.java 类中的以下代码更新项目的数量:

  for (int i = 0; i < Constants.mItem_Detail.size(); i++) {
                                            if (Constants.mItem_Detail.get(i).get(TAG_NAME)
                                                    .equals(song_name)) {
                                                Constants.mItem_Detail.remove(i);
                                                break;}

笔记:

如果我不会从产品选项卡移动到购物车选项卡,我可以查看项目数量的变化,但是一旦我从产品选项卡移动到购物车选项卡,我就不会看到项目数量的变化......

4

2 回答 2

1

我猜你是在正确的道路上,耐心检查,将物品添加到购物车然后更新购物车物品,等待几秒钟,我希望它会更新你的购物车......

您的代码对我来说看起来不错:

        for (int i = 0; i < Constants.mItem_Detail.size(); i++) {
        if (Constants.mItem_Detail.get(i).get(TAG_NAME)
        .equals(song_name)) {
        Constants.mItem_Detail.remove(i);
        break;
于 2013-03-12T11:46:47.243 回答
0

我假设您已将选项卡实现为片段。
如果这是真的,那么您需要将 onResume() 方法从 Activity 移动到 Fragment。

片段生命周期的参考链接:http: //developer.android.com/guide/components/fragments.html

于 2013-03-04T04:50:56.913 回答