개발/android

안드로이드 리스트 뷰(List View)

개발하는준이 2022. 4. 12. 01:46

리스트란 무엇인가. 

프로그래밍에서의 리스트는 하나의 자료구조이며, 리스트 자료구조의 특징이 순서가 있다라고 간단하게 설명할 수 있습니다.

출처 : 네이버 사전

View 는 보여지다.

즉 ListView 는 순서 있게 보여지는 것이라고 정의하고 시작 합니다.

 

java 코드에서의 List 아직 그래픽 처리가 되지않는 단지 java sourceCode 입니다.

따라서 안드로이드의 화면을 구성하는 Activity로 보여질 수 없습니다. 

보여주기 위해서는 xml을 가공하는 일련의 과정인 인플레이션을 합니다.

 

ListView에서는 이 인플레이션을 "어댑터" 를 사용해서 작업합니다. 

여기에서 어댑터는 list(java) - adapter - view(xml) 이렇듯

연결해주는 역할을 합니다. 

 

위 코드에서 살펴본다면 

어댑터객체의 생성자 인수로 context 와 리스트를 넣어줍니다. 

 

어댑터 클래스

 

 getView 메서드에서 인플레이트를 진행 하게 됩니다.

하지만 매번 리스트를 접근할 때마다 인플레이트와 xml-java를 연결해주는 findByViewId 메서드가 발생한다면 성능저하가 우려됩니다.

그래서 뷰홀더패턴이 사용됩니다.

viewHolder에 리스트하나의 아이템 요소들을 뷰홀더객체에 담아서

첫 생성시에만 인플레이트와 findViewById 를 해줌으로써, 메모리 최적화에 더 가까워졌다고 말할 수 있습니다.