2011-09-25 58 views
0

我正在使用我填充了数据的List<? extends Map<String,?>>如何更新列表<?中的数据扩展地图<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字段中的值?

+0

你的意思是像'名单[3]。把( “OrdQty”, “7”)'?你还没有告诉我们如何修改一个'item',所以我猜测。 – Beta

+0

它不会让我使用put命令:( – shawrie

+0

这是因为它是一个列表而不是数组,它应该是list.get(3).put(“ordQty”,“7”)。但是不这样做。 .. – KarlP

回答

2

@Duffymo是对的,你不应该使用地图作为伪对象。

这是如何更新列表中特定位置(index)的对象。

Map<String,?> ugly = list.get(index); 

然后,你可以做任何你想要的对象丑陋。

如果你这样做是正确的,它应该是这样的......

Product p = list.get(index); 
p.setOrderQuantity(17); 
6

看起来像不好的设计给我。 Java是一种面向对象的语言。为什么不提供真实的合同并创建产品和订单对象?订购要维护的产品清单。你提出的是不太明了,更难写和维护。

+0

即时通讯必须使用这种方法来填充列表视图,同时给我选项来覆盖getView方法 – shawrie

+1

我看不到使用真实物体的更好的设计会与该目标相冲突。您所写的所有内容都是关于“视图”,它与对象模型是分开的。 – duffymo

相关问题