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;
}
}