2013-06-23 1 views
0

문자열을 분할하고 각각의 분할 값을 해시 맵에 추가 한 다음 SimpleListAdapter로 설정합니다. 의 마지막 값만 분할 메서드를 추가합니다. 목록보기. 코드 :루프의 마지막 값을 목록보기에 추가하는 경우에만

for (String set : splitSet) 
       { 
       key=splitSet[0]; 
       value1= splitSet[1]; 
       value2 = splitSet[2]; 
       } 
       hmap = new HashMap<String, String>(); 
       hmap.put(key, value1); 
       hmap.put(key, value2); 

       listrows = new ArrayList<Map<String, String>>(); 
       listrows.add(hmap); 

      //attach values to listview 

      ListAdapter adapter = new SimpleAdapter(
            MainActivity.this, listrows, 
            R.layout.list_item, new String[] { 
              value1,value2}, 
            new int[] { R.id.value1,R.id.value2}); 
          // updating listview 
          lv.setAdapter(adapter); 

목록보기 출력은 다음의 정수이어야합니다

value1 
    value2 

    value1 
    value2 
    ............. 

하지만 메신저는 분할 result.what의 잘못에서 마지막 값을 얻기?

답변

1

당신의 splitSet 돌이와 은 당신이지도를 작성하고 그것을 채우 후 - 분명히 마지막 값으로 ... 재 포맷 코드는 제공 :

for (String set : splitSet) { 
    key = splitSet[0]; 
    value1 = splitSet[1]; 
    value2 = splitSet[2]; 
} 
hmap = new HashMap<String, String>(); 
hmap.put(key, value1); 
hmap.put(key, value2); 

당신은 아마 의미하는 반면, :

hmap = new HashMap<String, String>(); 

for (String set : splitSet) { 
    key = splitSet[0]; 
    value1 = splitSet[1]; 
    value2 = splitSet[2]; 
    hmap.put(key, value1); 
    hmap.put(key, value2); 
} 

그러나 문제가 남아 : 같은 키으로 두 값을 넣어. 여기서 value1이 손실됩니다. 당신도 아마 이것을 의미하지는 않습니다. 아마도 String 대신에 List<String>을 값으로 사용할 수 있습니까? 이 경우 코드가된다 다음 for 루프가 종료 한 후 값을 추가되기 때문에

hmap = new HashMap<String, List<String>>(); 

List<String> list; 
for (String set : splitSet) { 
    key = splitSet[0]; 
    value1 = splitSet[1]; 
    value2 = splitSet[2]; 
    list = new ArrayList<String>(); 
    hmap.put(key, list); 
    list.add(value1); 
    list.add(value2); 
} 
+0

thanks.done를 얻을 :이 그냥 루프에 대한 귀하의 중괄호 위치를 변경하고 HashMap 객체 for 전에 루프 구조를 만들 Hashmap에서 마지막으로 선택한 값의 삽입을 선도하고 있습니다 hmap.put (key, list)의 레드 마커; 내가 String1에 목록의 유형을 변경한다고 말하면서 내가 value1과 value2를 추가 할 수 없다면 .. –

0

은 문자 그대로 당신이 Hashmap에 마지막 값을 추가하고 있습니다. 당신이 제안했듯이

, 그때 내가
hmap = new HashMap<String, String>(); 
for (String set : splitSet) 
{ 
    key=splitSet[0]; 
    value1= splitSet[1]; 
    value2 = splitSet[2]; 
    //}//Comment it 
    hmap.put(key, value1); 
    hmap.put(key, value2); 
} 
관련 문제