ListView 사용 중에 선택한 줄을 표시하려고 setBackgroundColor() 함수를 사용하였다.
근데 선택한곳과 더불어 엉뚱한 곳의 row가 같이 색이 변하는 현상이 발생하였다.
정확한 원인은 모르겠으나, 검색 중 아래와 같은 해결방법 발견.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = m_inflater.inflate(m_nLayout, null);
}
...
}
리스트뷰에 값을 표시할 때 보통 어댑터 클래스의 getView에 구현을 하는데,
책이나 인터넷을 보니 위와 같은 코드를 사용하길래, 넣어두었는데,
위 코드에서 if 절을 제외하면 엉뚱한곳의 색깔이 변하는 현상이 사라졌다.
그니깐 무조건 convertView에 레이아웃을 inflate 하게끔 했다.
'Programming' 카테고리의 다른 글
Android - 앱에 뱃지 표시하기 (숫자 카운트) (1) | 2016.09.03 |
---|---|
Android - 액티비티 방향 고정 (0) | 2016.09.03 |
Android - Notification 사용시 intent 값이 바뀌지 않을 때 (0) | 2016.09.03 |
Android - 전역 객체 변수 사용 (0) | 2016.09.03 |
Android - Notification 선택시 전달값 null 일 때 (0) | 2016.09.03 |