2010년 6월 9일 수요일

ListView.getCheckItemIds() 에러에 대해서...

안드로이드 2.1에서 ListView.getCheckItemIds()를 사용하면 return 값이 제대로 처리되어 넘어 오지 않습니다.


위에 링크를 따라 가봐도 bug report가 되어 있는 상황이다.

그래서 다른 방법으로 check된 id를 구해 오는 방법입니다.

public class TestActivity extends ListActivity {
{
private ListView mList;

protected void onCreate(Bundle savedInstanceState) {
...
mList = getListView();
...
}

protected void onPause() {
super.onPause();
List list = new ArrayList();
SparseBooleanArray a = mList.getCheckedItemPositions();
for(int i = 0; i <>
if (a.valueAt(i)) {
list.add(mList.getAdapter().getItemId((a.keyAt(i)));
}
}
}

getCheckItemIds()가 대신 getCheckedItemPositions()으로 position들을 구해서 apater에서 ids를 구해 오도록 하였다.

댓글 쓰기