2011-09-05 1 views
8

빠른 검색 테이블로 사용자 이름 목록에 고유 한 int ID 목록을 사용하고 있고 sparseArray를 사용하기로 결정했지만 인쇄 할 수있게하려고합니다. 디버깅 목적으로 때때로 전체 목록을 기록하십시오.Android : SparseArray를 반복하는 관용구가 있습니까?

는 SparseArray는 반복 가능하지 않고 전체 크기를 얻을 수있는 util.Map 인터페이스

+0

비슷한 질문을 찾을 수 있습니다

public static String sparseArrayToString(SparseArray<?> sparseArray) { StringBuilder result = new StringBuilder(); if (sparseArray == null) { return "null"; } result.append('{'); for (int i = 0; i < sparseArray.size(); i++) { result.append(sparseArray.keyAt(i)); result.append(" => "); if (sparseArray.valueAt(i) == null) { result.append("null"); } else { result.append(sparseArray.valueAt(i).toString()); } if(i < sparseArray.size() - 1) { result.append(", "); } } result.append('}'); return result.toString(); } 
[여기] (http://stackoverflow.com/questions/7999211/iterate-through-sparsearray/8006994#8006994)이 솔루션에 대한 좀 더 설명과 – Wasky

답변

4

사용 SparseArray.size()처럼 많이하지 않습니다.

SparseArray.keyAt 및 valueAt를 사용하여 지정된 색인의 키/값을 가져옵니다.

+2

예를 여기에 : http://stackoverflow.com/a/8006994/579234 – Sogger

14

마우스가 정확했다면 코드는 다음과 비슷할 것입니다.

for(int i = 0; i < sparseArray.size(); i++){ 
    int key = sparseArray.keyAt(i); 
    Object value = sparseArray.valueAt(i); 
} 
+1

의견에있는이 해결책에 더 많은 설명은 여기에있다 : http://stackoverflow.com/a/8006994/579234 – Sogger

0

다음은 디버그 추적에 대한 SparseArray 내용을 표시하는 방법입니다.

(답변)