2

我制作了一个应用程序,我在其中使用了两个选项卡

第一个选项卡,显示产品列表 [菜单选项卡]

第二个标签,显示您添加的产品 [购物车标签]

在这里,我允许用户将产品添加到购物车更新产品数量并显示所有项目的总金额

在我的代码中,我面临着非常小的问题,但在过去的两天里我没有办法解决这个问题。

问题:

每当我单击购物车选项卡查看产品时,我选择购买的产品然后再次返回菜单选项卡以选择更多要购买的产品,然后再次单击购物车选项卡以查看我选择的所有产品,这里我能够查看选定的产品,但无法查看更新的数量并且总金额没有任何变化[仅获取所有以前添加的项目的总数,不适用于我第二次添加的项目...]

请告诉我我错过了哪里,获取更新的数量并更改总价,我需要添加什么代码以及我需要在ViewCartActivity类中添加的位置

ViewCartActivity.Java:

    public class ViewCartActivity extends Activity {

    TextView mTxtViewGrandTotal;
    String mGrandTotal ;


    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewcartactivity);

        ListView mLstView1 = (ListView) findViewById(R.id.listView1);
        mTxtViewGrandTotal = (TextView) findViewById(R.id.mTxtViewGrandTotalValue);

        ViewCartAdapter mViewCartAdpt = new ViewCartAdapter(ViewCartActivity.this);
        mLstView1.setAdapter(mViewCartAdpt);

        if (Constants.mItem_Detail.size() > 0) 
        {
            Double mGTotal = Double.parseDouble(Constants.mItem_Detail.get(0).get(SingleProductActivity.KEY_TOTAL));
            for (int i = 1; i < Constants.mItem_Detail.size(); i++) {   
                mGTotal = mGTotal + Double.parseDouble(Constants.mItem_Detail.get(i).get(SingleProductActivity.KEY_TOTAL));
            }

            mGrandTotal = String.valueOf(mGTotal);
            mTxtViewGrandTotal.setText(mGrandTotal);



            ImageButton mImgViewCart = (ImageButton) findViewById(R.id.back_btn);
            mImgViewCart.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                        Intent mViewCartIntent = new Intent(ViewCartActivity.this, com.version.bajrang.january.menu.ArrowsActivity.class);
                        startActivity(mViewCartIntent);


                }
            });     
        }
    }   

    @Override
    protected void onResume() {
    // TODO Auto-generated method stub
    System.out.println("onResume list current size "+Constants.mItem_Detail.size());
    super.onResume();
    }
}

在 Logcat 中,我得到:

onResume list current size 3 [Number of Records]

TabActivity.Java:

    private void setTabs()
{
    addTab("Order", R.drawable.tab_order, CategoryActivity.class);
    addTab("Cart", R.drawable.tab_cart, ViewCartActivity.class);
}

@Override
    public void onBackPressed() {
    // Code to update product Quantity
    super.onBackPressed();
    Constants.mItem_Detail.clear();
}

ViewCartAdapter.Java:

 public class ViewCartAdapter extends BaseAdapter {

Activity activity;
LayoutInflater inflater;

public ViewCartAdapter(Activity a) {
    // TODO Auto-generated constructor stub
    activity = a;
    inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
    // TODO Auto-generated method stub
    return Constants.mItem_Detail.size();
}
public Object getItem(int position) {
    //return position;
    return Constants.mItem_Detail.get(position);
}
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;

}
public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View vi = convertView;
    if (convertView == null)
        vi = inflater.inflate(R.layout.viewcartlist, null);
    TextView title = (TextView) vi.findViewById(R.id.title);
    TextView qty = (TextView) vi.findViewById(R.id.qty);
    TextView cost = (TextView) vi.findViewById(R.id.cost);

    HashMap<String, String> item = new HashMap<String, String>();
    item = Constants.mItem_Detail.get(position);
    // Setting all values in listview
    title.setText(item.get(SingleProductActivity.TAG_NAME));
    qty.setText(item.get(SingleProductActivity.KEY_QTY));
    cost.setText(item.get(SingleProductActivity.TAG_DURATION));
    return vi;
}   
   }
4

1 回答 1

1

Rakesh 您已经编写了程序中需要的所有内容,只需要从 ViewCartActivity 中的 onCreate() 移动到 onResume() 方法

像这样:

 public class ViewCartActivity extends Activity 
 {

TextView mTxtViewGrandTotal;
String mGrandTotal ;


@Override
protected void onCreate(Bundle savedInstanceState) 
{
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewcartactivity);

    ListView mLstView1 = (ListView) findViewById(R.id.listView1);
    mTxtViewGrandTotal = (TextView) findViewById(R.id.mTxtViewGrandTotalValue);

    ViewCartAdapter mViewCartAdpt = new ViewCartAdapter(ViewCartActivity.this);
    mLstView1.setAdapter(mViewCartAdpt);

        ImageButton mImgViewCart = (ImageButton) findViewById(R.id.back_btn);
        mImgViewCart.setOnClickListener(new OnClickListener() 
        {

            public void onClick(View v) {
                // TODO Auto-generated method stub

                    Intent mViewCartIntent = new Intent(ViewCartActivity.this, com.version.bajrang.january.menu.ArrowsActivity.class);
                    startActivity(mViewCartIntent);

            }
        });     
    }


@Override
protected void onResume() 
{
    super.onResume();
    System.out.println("onResume list current size " + Constants.mItem_Detail.size());

    if (Constants.mItem_Detail.size() == 0) 
    {
    return;
    }

    Double mGTotal = Double.parseDouble(Constants.mItem_Detail.get(0).get(SingleProductActivity.KEY_TOTAL));
    for (int i = 1; i < Constants.mItem_Detail.size(); i++) 
    {   
        mGTotal = mGTotal + Double.parseDouble(Constants.mItem_Detail.get(i).get(SingleProductActivity.KEY_TOTAL));
    }
    mGrandTotal = String.valueOf(mGTotal);
    mTxtViewGrandTotal.setText(mGrandTotal);
     }
   }
于 2013-01-30T05:08:36.263 回答