[2024. 01. 05] AdapterView

Gahyeon Lee·2024년 1월 5일
1

TIL

목록 보기
40/47

🥐 AdapterView란?

  • 어댑터 뷰는 여러 개의 항목을 다양한 형식(다양한 이미지뷰, 텍스트뷰, 컬러 등)으로 나열하고 선택할 수 있는 기능을 제공하는 뷰이다.
    예를 들어, 리스트 형식으로 이미지뷰 한 개와 텍스트뷰 두 개를 써야한다고 하자. 리스트가 10개라면 열심히 만들 수 있겠지만, 100개를 넘어간다면 그 100개를 일일이 다 만들 수가 없을 것이다. 어댑터 뷰를 이용하면 리스트 중 한 개를 만들어서 이것을 재사용할 수 있다.
    - 리스트뷰(ListView)는 항목을 수직으로 나열시키는 방식
    - 그리드뷰(GridView)는 항목을 격자 형태로 나열시키는 방식
  • 어댑터 뷰는 표시할 항목 데이터를 직접 관리하지 않고,어댑터라는 객체로부터 공급받는다. 데이터 원본을 AdapterView에서 직접 가지고 있는 것이 아니라, 중간에서 Adapter(중계 역할)가 가공을 해서 형식에 맞게 AdapterView에 넘겨준다.
  • 그러므로 AdapterView에는 무조건 Adapter를 만들어야 한다.(기본 제공 Adapter 또는 Custom Adapter)

🥐 Adapter

1. Adapter란?

  • Adapter는 데이터를 관리하며, 데이터 원본과 어댑터뷰(ListView, GridView) 사이의 중계 역할을 한다.
  • 어댑터뷰는 어떻게 데이터 항목을 표시할까?
    1. 어댑터뷰가 어댑터를 사용하기 위해서는 먼저 데이터 원본이 어댑터에 설정되어야 하고, 어댑터뷰에는 어댑터가 설정되어야 한다.(Adapter가 데이터 원본을 가지고 있어야 하고, 어탭터뷰에는 Adapter를 연결해야 한다.)
    2. 어댑터뷰는 항목을 표시하기 위해서 먼저 표시할 항목의 총 개수를 알 필요가 있을 것이다. 이 때, 어댑터 뷰는 어댑터의 getCount()란 메소드를 통해 현재 어뎁터가 관리하는 데이터 항목의 총 개수를 반환한다.
    3. 어댑터 뷰는 어댑터의 getView()란 메소드를 통해서 화면에 실제로 표시할 항목뷰를 얻고, 이를 화면에 표시한다.
  • 사용자가 어댑터뷰의 특정 위치의 항목을 선택하였을 때, 어댑터뷰는 선택된 항목, 항목ID, 항목뷰를 어댑터의 getItem(), getItemId(), getView() 메소드를 통해 얻어와서 이를 항목 선택 이벤트 처리기에 넘겨준다.
  • 요약하면, 어댑터뷰는 어댑터에 정의된 인터페이스를 바탕으로 필요한 정보를 요청하여 항목뷰를 화면에 표시하거나 선택된 항목뷰를 처리한다.

2. Adapter의 종류

1) BaseAdapter

  • 어댑터 클래스의 공통 구현
  • Custom Adapter(사용자 정의 어댑터) 구현 시 BaseAdapter를 상속받아서 만듦

2) ArrayAdapter

  • 단순히 객체 배열이나 리소스에 정의된 배열로부터 데이터를 공급받을 때 사용

3) CursorAdapter

  • 데이터베이스로부터 데이터를 공급받음

4) SimpleAdapter

  • 데이터를 Map(키,값)의 리스트로 관리**
  • 데이터를 XML파일에 정의된 뷰에 대응시키는 어댑터

profile
코린이 강아지 집사🐶

0개의 댓글