반응형

이번 시간에는 우리가 가장 많이 쓰는 ListView의 계층 구조에 대해 알아보겠습니다. 


- 먼저 ListView에 대해 알아보도록 하겠습니다. 

   ListView는 여러개의 항목을 수직으로 표시하는 위젯입니다. 

   수직 스크롤을 지원하므로 항목의 개수가 아무리 많아도 모두 표시할 수 있는 장점이 있습니다.


- ListView의 계층 구조를 먼저 그림으로 알아보도록 하겠습니다.




- 안드로이드 개발을 할 때 ListView, GridView, Spinner, Gallary 를 오버라이딩 해서 UI를 구성하는 경우가 많이 있습니다. 

  이들을 묶어서 AdapterView라고 부르며 집합을 화면에 표시한다는 면에서 기능적으로 동일합니다.


- 이 위젯들을 AdapterView 라고 부르는 이유는 표시할 항목 데이터를 직접 관리하지 않고 Adapter 객체로부터 공급받기 때문입니다. 즉, Adapter 객체는 원본으로부터 얻은 데이터를 관리하며 AdapterView는 Adapter가 전달한 데이터를 화면에 표시하는 식으로 분업화 합니다.


- 그림으로 도식화하면 아래와 같습니다.




- 그럼 데이터를 담당하는 Adapter 계층 구조를 살펴보도록 하겠습니다.




- 최상위 Adapter 인터페이스는 AdapterView와 데이터간의 연결을 제공하고 항목의 집합을 관리하는 기본적인 메서드를 선언합니다. 그리고 BaseAdapter는 상위 객체인 ListAdapter와 SpinnerAdapter의 공통적인 기능을 구현합니다. BaseAdapter의 getView 메소드를 오버라이딩 하여 화면을 구성하게 됩니다.


- BaseAdapter의 하위 객체는 데이터의 원본에 따라 나뉘어 집니다. ArrayAdapter는 배열이나 리소스에 정의된 배열로부터 데이터를 가져오며 CursorAdapter는 데이터베이스로부터 데이터를 가져오며 SimpleAdapter는 XML 파일의 정적인 데이터를 원본으로 가져옵니다.


이번 시간에는 Adapter와 AdapterView 의 유기적인 관계와 각 객체의 계층구조를 알아보았습니다. 

다음 시간에는 좀 더 자세한 구현 방법에 대해 알아보도록 하겠습니다.


반응형

+ Recent posts