标题可能有点令人困惑,如果是这样,对此感到抱歉(有时候睡眠不足)。
所以,我有一个定义的ArrayList,在我的适配器中用来填充我的listview,如下所示:
的ArrayList:
oslist = new ArrayList<HashMap<String, String>>();
oslist = Product.getArrayList();
if (intent.getStringExtra("PROD_NAME")!= null) {
HashMap<String, String> map = new HashMap<String, String>();
map.put(PROD_NAME, name);
map.put(PROD_PRICE, price);
oslist.add(map);
适配器:
adapter = new SimpleAdapter(shopping_cart.this, oslist,
R.layout.shoppingcart,
new String[] {PROD_NAME, PROD_PRICE}, new int[] {R.id.name, R.id.Price});
setListAdapter(adapter);
registerForContextMenu(lv);
我还创建了一个仅有一个目的的上下文菜单 - 从列表中删除所选项目,如下:
@Override
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.remove_item:
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
position = (int) info.id;
total = " Total : "+price_total+" RON ";
total_tv.setText(total);
oslist.remove(position);
((BaseAdapter) this.adapter).notifyDataSetChanged();
return true;
}
return super.onContextItemSelected(item);
}
我的问题:在删除商品之前,我如何才能从arraylist的位置获得产品价格?我需要得到价格,所以我可以从总数中减去它。
编辑:已解决!
显然我非常困,因为答案就在我面前。
修复了以下代码的问题:
String pretp = (String)oslist.get(position).get(PROD_PRICE);
这可以获得点击位置的商品的商品价格。使用我在提出问题时提供的其余代码,它会相应地更新我的总价。 :)
希望这至少可以帮助别人。如果有人有替代解决方案,当然也可以随意发布。