【发布时间】:2011-04-23 10:50:41
【问题描述】:
我只想知道如何,如果 Hashmap 已经在列表中,则将数量加 1,如果没有,则将其添加到列表中。这就是我所做的,即使该项目已经在列表中,也只是添加。
list = new ArrayList<HashMap<String, String>>();
Cursor c = db.rawQuery("SELECT code,desc,price FROM TbLPrice WHERE code =" + txtCode.getText().toString(), null); //search database
if (c.moveToFirst()){ //if successful
txtDesc.setText(c.getString(1)); //get desc
txtPrice.setText(c.getString(2)); // get price @ database
HashMap<String, String> map = new HashMap<String, String>();
map.put("desc", c.getString(1));
map.put("price", c.getString(2));
map.put("quantity","1");
list.add(map);
adapter.notifyDataSetChanged();
【问题讨论】:
-
你真正想用这个实现什么?如果您解释要解决的问题,可能会更容易理解您的代码。因为到目前为止,它没有多大意义......
-
请看下面我的解决方案。在列表中添加项目之前,我想知道它是否已经存在,如果不存在,则将项目添加到列表中,如果已经存在,则将其 hashmap“数量”更新为 2,依此类推。
-
在写我的第一条评论时,我已经在下面查看了您的解决方案。我再说一遍:你真正想用这个实现什么?你的代码不容易阅读(而且看起来代码是更大上下文的一部分),所以很难理解,因此很难帮助你。例如,为什么在“ArrayList”中有几个“HashMap”?您是否尝试总结一些东西?因为如果是这种情况,我觉得我错过了一个循环或其他东西......尝试清理你的代码并澄清你的问题(也许有一个具体的例子),那么我们也许可以帮助你。
-
对不起我的代码。我还是安卓新手。我有一个列表,它将存储带有 [desc,price,quantity] 的哈希图。我想在列表中添加一个元素,但在添加之前,我想先检查相同的项目是否存在,因为它是否已经存在。我不会添加另一个元素,但会更新同一项目的数量。前任。 DESC PRICE QUANTITY ITEM A 10.00 1 ITEM B 20.00 1 如果我想添加另一个 ITEM A,它已经存在于列表中,所以我只想将 1 添加到列表中已经存在的 Item A 的数量。