【问题标题】:How to store information across Activities while using Tabs in Android如何在 Android 中使用选项卡时跨活动存储信息
【发布时间】:2013-01-29 06:53:49
【问题描述】:

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

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

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

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

在我的代码中,我遇到了非常小的问题,但过去两天我没有办法解决这个问题。

问题:

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

请告诉我我错过了哪里,获取更新的数量并更改总价,我需要添加什么代码以及我需要在我的 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;
}   
   }

【问题讨论】:

    标签: android android-intent android-emulator


    【解决方案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);
         }
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      • 1970-01-01
      • 2019-07-31
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多