13

Android Programming - AdapterView

Embed Size (px)

DESCRIPTION

Chapter 08 - AdapterView

Citation preview

Page 1: Android Programming - AdapterView
Page 2: Android Programming - AdapterView

어댑터 뷰 - 리스트 뷰 , 그리드 뷰 , 스피너 , 갤러리 등 항목

집합을 표시하는 데 사용되는 것을 통칭하는 말 - 어뎁터 뷰는 ViewGroup 으로부터 파생되므로 항목에

해당하는 여러 개의 차일드 뷰를 가질 수 있다 . - 상호작용도 처리함

위젯 ( 어뎁터뷰 )위젯 ( 어뎁터뷰 ) 어뎁터어뎁터

DATADATA

Page 3: Android Programming - AdapterView

어댑터 뷰계층구조 잘 봐두기 - ArrayAdapter : 객체 배열이나

리소스에 정의된 배열로부터 데이터를 가져옴 .

- CursorAdapter : 데이터베이스로 부터 데이터를 가져옴 .

- SimpleAdapter : XML 파일의 정적인 데이터를 가져옴 .

Page 4: Android Programming - AdapterView

어댑터 뷰의 기본 리스트뷰

리스트 뷰 어댑터 뷰의 대표 위젯으로 항목들을

수직으로 펼쳐서 보여주는 것

1. 데이터 원본 준비 (static ArrayAdapter<CharSequence>

createFromResource ( Context context, int textArrayResId, int textViewResId)- XML 로 어댑터만들기

2. 어댑터 준비 ArrayAdapter(Context context, int textViewResourceId,

List<T> objects)

ArrayAdapter(Context context, int textViewResourceId,

T[ ] objects) 3. 어댑터 연결 void setAdapter( T adapter )

Page 5: Android Programming - AdapterView

어댑터 뷰의 기본 리스트뷰

대표 속성 choiceMode

항목을 선택하는 모드 , 선택을 허용하려면 사용자가 누를 수 있는 체크 박스나 라디오 버튼이 레이아웃에 배치되어 있어야 한다 .

divider 항목사이에 구분선을 지정한다 . dividerHeight 로 높이를 지정할 수 있다 .

entries 리스트 뷰에 표시할 배열을 지정한다 .

Page 6: Android Programming - AdapterView

어댑터 뷰의 기본 리스트뷰

항목 편집 - 리스트뷰에 항목을 넣거나 뺄 때는 리스트 뷰

자체를 프로그래밍 하는 것이 아니라 어댑터와 연결된 원본을 편집해야 한다 .

- 원본을 편집한 후에는 BaseAdapter 의 notifyDataSetChanged() 메서드를 호출하여 참조하고 있는 원본 데이터가 변경되었음을 알려야 한다 .

Page 7: Android Programming - AdapterView

어댑터 뷰의 기본 리스트뷰

커스텀 항목 뷰 - 이건 너무 심오해 정리할 수가 없다 한 10 번읽어보면 알게됨 소스도 어려우므로 꼭 해보길 추천

Page 8: Android Programming - AdapterView

어댑터 뷰의 기본 리스트뷰

마무리

- 안드로이드의 리스트 뷰는 유연성이 굉장히 좋은 편이다 .

- 어댑터와 분리되어 있어 임의의 원본으로부터 데이터를 공급받을 수 있으며 레이아웃을 커스텀 디자인 할 수 있으므로 출력 방식에도 제한이 없다 .

- 이질적인 뷰를 한 리스트에 넣을 경우 상당히 비 효율적이다 . 이럴땐 걍 LinearLayout 을 쓰는게 ..

Page 9: Android Programming - AdapterView

어짜피 엑티비티로 쓸꺼면 리스트액티비티 - 리스트 뷰는 그 자체 덩치가 크고 다른 뷰를

포함할 수 있는 뷰 그룹이라 보통 액티비티 전체를 가득 채운다 .

- 그래서 아예 시스템 차원에서 리스트 뷰만으로 액티비티를 구성하는 ListActivity 클래스가 제공된다 .

- setContentView() 호출문이 필요 없다 . - setAdapter() 대신 setListAdapter 로

한방에 ..!

Page 10: Android Programming - AdapterView

파법 파법 파법 팝업 !! 스피너

스피너 리스트 뷰처럼 목록을 표시하며

클릭할 때만 팝업으로 뜨는 위젯

- 스피너는 대체로 여러 가지 선택 사항중 하나를 선택 받을 때만 사용된다 .

- 스피너는 선택 사항에 대한 프롬프트 메시지를 팝업 상단에 따로 표시할 수 있다 .

Page 11: Android Programming - AdapterView

결국 테이블……… 그리드

그리드 뷰 항목들을 2 차원의 표 형태로

출력하는 위젯 .

- 넓게 보여주므로 대량의 데이터 중 하나를 선택받을 때 적합하다 .

Page 12: Android Programming - AdapterView

수평스크롤 !!! 갤러리

갤러리 중앙이 고정되어 있고 수평으로

스크롤되는 어댑터 뷰이다 . - 가장 전형적인 사용 예는 이미지 선택기이다 .

Page 13: Android Programming - AdapterView