2011-09-25 77 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

相關問題