View Holder
ListView를 좀 개선해보도록 하겠다
ListView에서 뷰를 그릴 때 사용했던 findViewById는 리소스를 많이 사용하는 함수이다
이전 포스트에서 사용한 ListView방식을 보면
아이템 뷰를 불러올 때마다 findViewById함수가 실행되기 때문에 효율면에서 좋지 않다
View Holder에 우리가 사용할 뷰를 담아서
효율적으로 뷰를 재사용해보겠다
View Holder클래스를 하나 만들어 주겠다
이전 포스트에서 작성한 getView 메서드를 모두 지워주고
getView 메서드에 뷰와 홀더를 담을 변수를 만들어 주겠다
만약 이미 만들어 놓은 뷰가 없으면 새로 뷰를 만들어 주도록 한다
마지막에는 뷰가 담겨있는 홀더를 찾을 수 있도록 태그를 달아준다
만약 재사용할 뷰가 있다면 홀더랑 뷰를 가져오도록 한다
지금까지는 뷰를 재활용한 모습니다
이제 아이템 뷰에 값을 넣어주고 뷰를 리턴해주면 된다
리스너를 달아보자
리스트 아이템에 클릭 리스너를 달아보겠다
setOnItemClickListener로 아이템을 클릭했을 때 원하는 동작을 설정해 주면 된다
간단하게 토스트 메시지를 띄어보았다
결과
아이템을 클릭하면 토스트 메시지가 잘 나온다
divider
ListView에는 아이템을 구분해주는 divider 속성이 있다
간단하게 속성을 만져보겠다
divider높이를 설정해 주었다
결과
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.