Hayden's Archive
[Android] ListView와 Spinner 본문
참고 : 한국방송통신대학교 모바일앱프로그래밍 교재( https://press.knou.ac.kr/goods/textBookView.do?condCmdtCode=9788920035999&condLscValue=001&condYr=&condSmst= )
ListView
* AdapterView
- AdapterView는 여러 개의 차일드 뷰를 통합하여 화면에 표시할 수 있음
- LinearLayout, RelativeLayout과 같이 차일드 뷰의 배치만 담당하는 레이아웃과는 달리 사용자와 상호작용도 처리할 수 있으며 항목의 선택이 가능
- 표시할 항목을 Adapter 객체로부터 전달받아 화면에 출력
- 항목의 개수는 제한 없음
- 실행 중에 항목이 바뀔 수 있고 표시할 수 있는 데이터의 원본도 다양
* ListView
- 여러 개의 항목들을 수직으로 표시하는 위젯
- 주소록이나 상품 목록과 같이 다수의 항목을 출력해야 하는 앱에서 많이 사용
- 수직 스크롤을 지원하며, 스마트폰 화면 길이보다 긴 항목들을 표시할 수 있고, 항목의 개수에는 제한이 없음
- 간단한 문자열, 이미지를 나타내거나 문자열과 이미지를 같이 표시할 수 있음
- ListView 항목
- ListView의 항목은 임의의 뷰이며, 레이아웃을 사용하면 어떠한 형태로든 정보를 표현할 수 있음
- Adapter로부터 받은 항목들을 수직으로 펼쳐서 보여줌
- Adapter vs AdapterView
- Adapter : 화면에 표시될 데이터를 관리
- AdapterView : Adapter가 전달한 데이터를 화면에 출력
Spinner
* Spinner와 ListView
- ListView는 항상 펼쳐져 있지만 Spinner는 클릭할 때만 팝업 형식으로 펼쳐짐
- 목록을 보려면 팝업을 열어야 하고 선택을 위해 최소한 두 번 클릭해야 함
- ListView는 항상 보이며 사용자와의 상호 작용도 용이해서 Spinner보다는 좀 더 활용도가 높은 편
- Spinner의 경우 여러 개의 항목 중에서 하나를 선택할 때 사용됨
- Spinner 또한 Adapter로부터 데이터를 공급받으며 Adapter를 생성하는 방법은 ListView와 동일
- Spinner에서는 ListView와 달리 선택사항에 대한 Prompt 메시지를 팝업 상단에 표시할 수 있음