我正在使用我填充了数据的List<? extends Map<String,?>>
。
cursor.moveToFirst();
while (cursor.getPosition() < cursor.getCount()) {
item.put("ProdName",cursor.getString(2));
item.put("ProdSize", cursor.getString(3));
item.put("ProdPack",cursor.getString(4));
item.put("OrdQty","0");
//list.add(item);
list.add(i, item);
item = new HashMap<String,String>();
cursor.moveToNext();
i = i + 1;
}
如何更新一个值,例如在OrdQty
字段?
看起来像一个非常糟糕的设计。Java是一种面向对象的语言。为什么不提供一个真正的契约并创建Product和Order对象呢?给订单一份要维护的产品清单。你提出的建议不太容易解释,而且更难编写和维护。
@Duffymo是对的,你不应该使用map作为伪对象。
这是如何在列表的特定位置(index
)更新对象。
Map<String,?> ugly = list.get(index);
然后你可以对这个对象做任何你想做的事情。
如果你做得好,它看起来像这样…
Product p = list.get(index);
p.setOrderQuantity(17);