2

Two Tabsを使用しているアプリを作成しました。

最初のタブ、製品のリストを表示する [メニュー タブ]

2番目のタブ、あなたが追加した商品を表示する[カートタブ]

ここでは、ユーザーが製品をカートに追加し、製品の数量を更新し、すべてのアイテムの合計金額を表示できるようにしています。

私のコードでは、非常に小さな問題に直面していますが、過去 2 日間、これを解決する方法がありません。

問題:

カートタブをクリックして製品を表示するたびに、購入することを選択し、メニュータブに戻って購入する製品をさらにいくつか選択し、カートタブをクリックして選択したすべての製品を表示します。選択した製品を表示できますが、更新された数量を表示できず、合計金額に変更がありません [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 に答える