2011-09-25 6 views
0

데이터가 채워진 List<? extends Map<String,?>>을 사용하고 있습니다.목록의 데이터를 업데이트하는 방법 <? 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 분야에서 예를 들어 값을 업데이트합니까?

+0

당신은 목록 '과 같은 의미 [3] .put ("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

이 메소드를 사용하여 listview를 채우고 getView 메소드를 덮어 쓸 수있는 옵션을 부여해야합니다. – shawrie

+1

어떻게 보입니까? 실제 객체를 사용하는 더 나은 디자인은 그 목표와 충돌합니다. 당신이 쓴 모든 것은 객체 모델과는 별개의 "뷰"에 관한 것입니다. – duffymo

관련 문제