안드로이드 개발 질문/답변
(글 수 45,052)
AdapterView.OnItemClickListener listClick = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
arg1.setBackgroundColor(Color.RED);
}
};
해당 뷰를 선택하면 이상없이 색상이변경되기는하는데 스크롤을 해보면 다음페이지의 같은 인덱스,,,사실 인덱스는다르지만 예를들면 한화면의 10개의 아이템이 보여지고 2번째 아이템이 선택되었다면 12번째 22번째 32번째 아이템의 색상도 같이변경이됩니다.
이것 해결할수 있는 방법에 조언을 구합니다.




리스트뷰에서 각 아이템에 대한 뷰는 재사용되기 때문에 그냥 색상을 바꾸시면 재사용되서 되돌아오는 뷰도 색상이 바뀌어 있겠죠.
따라서 이러한 작업은 어댑터 내부에서 하는 것이 좋고, 색상 바꾸는 것만 하시려는 것이면 selector를 사용하는 것이 더 좋겠습니다.