如何在listview中按位置获取ArrayList中的特定值?

时间:2014-07-09 02:34:44

标签: android listview arraylist contextmenu

标题可能有点令人困惑,如果是这样,对此感到抱歉(有时候睡眠不足)。

所以,我有一个定义的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);

这可以获得点击位置的商品的商品价格。使用我在提出问题时提供的其余代码,它会相应地更新我的总价。 :)

希望这至少可以帮助别人。如果有人有替代解决方案,当然也可以随意发布。

0 个答案:

没有答案