안녕하십니까? 예전에 비슷한 내용을 적은적이 있는데요.
동작에서 에러는 나지 않게 수정은 했지만 여전히 이상한 현상이 일어납니다.

로그를 찍어보면....
02-21 07:32:43.645: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:null
02-21 07:32:43.656: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:43.665: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:43.675: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:43.675: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:43.698: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:43.706: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:43.715: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:43.725: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:43.756: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:43.775: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:43.785: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:43.796: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:43.806: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:43.826: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:43.849: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:43.856: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:43.856: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:43.875: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:43.885: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:43.896: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:43.905: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:43.926: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:43.935: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:43.956: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:43.976: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:43.985: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:43.999: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:44.006: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:44.015: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:44.026: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:44.035: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:44.055: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:44.155: DEBUG/dalvikvm(4717): GC freed 4516 objects / 258456 bytes in 84ms
02-21 07:32:44.155: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:44.175: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:44.206: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:44.235: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:44.245: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:44.285: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:44.295: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:44.315: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:44.335: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:44.365: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:44.375: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:44.385: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:44.405: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:44.415: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:44.426: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:44.452: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:44.465: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:44.475: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:44.498: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:44.505: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:44.515: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:44.525: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:44.555: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:44.565: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:44.585: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:44.606: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:44.627: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:44.665: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:44.725: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:null
02-21 07:32:44.805: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:null
02-21 07:32:44.885: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:null
02-21 07:32:45.045: DEBUG/dalvikvm(4717): GC freed 4472 objects / 785008 bytes in 93ms
02-21 07:32:45.125: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:null
02-21 07:32:45.265: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:null
02-21 07:32:45.275: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:45.285: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:45.295: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:45.305: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:45.315: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:45.335: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:45.345: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:45.355: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:45.375: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:45.385: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:45.385: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:45.395: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:45.405: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:45.415: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout
02-21 07:32:45.425: VERBOSE/AnalyzeListArrayAdapter(4717): position:0, convertView:CheckedLinearLayout
02-21 07:32:45.435: VERBOSE/AnalyzeListArrayAdapter(4717): position:1, convertView:CheckedLinearLayout
02-21 07:32:45.455: VERBOSE/AnalyzeListArrayAdapter(4717): position:2, convertView:CheckedLinearLayout
02-21 07:32:45.465: VERBOSE/AnalyzeListArrayAdapter(4717): position:3, convertView:CheckedLinearLayout
02-21 07:32:45.475: VERBOSE/AnalyzeListArrayAdapter(4717): position:4, convertView:CheckedLinearLayout

일단 리스트는 5개의 아이템으로 구성되어있습니다. getView함수만 사용해서 화면을 출력하고 있고요.
getView에 제일 윗부분에서 convertView가 있던없던 무조건 재생성해서 쓰고 있습니다. 그후에는
텍스트뷰나 이미지뷰에 값을 넣어주는데요.

실제 스마트폰에서 화면을 보여줄 때까지 좀 어색하게 멈추어집니다. 데이터가 늘어나면 더 늘려질듯해서
걱정입니다. 어디서부터 문제점을 찾아보아야 할지 모르겠네요...

getView의 호출을 적게 하는 방법이 없을까요? 리스트의 갯수하고 관련된 거라고 하기에는
리스트값이 5개인데 17번호출 된다는 것도 좀 어색하고.....
profile

현재 일본에서 일하고 있는 프로그래머입니다.

안드로이드 경력은 일년이 좀넘어가는 중입니다.


Market URL

https://market.android.com/developer?pub=FattyRabbit