Upload
jake-yoon
View
4.147
Download
1
Embed Size (px)
DESCRIPTION
Chapter 08 - AdapterView
Citation preview
어댑터 뷰 - 리스트 뷰 , 그리드 뷰 , 스피너 , 갤러리 등 항목
집합을 표시하는 데 사용되는 것을 통칭하는 말 - 어뎁터 뷰는 ViewGroup 으로부터 파생되므로 항목에
해당하는 여러 개의 차일드 뷰를 가질 수 있다 . - 상호작용도 처리함
위젯 ( 어뎁터뷰 )위젯 ( 어뎁터뷰 ) 어뎁터어뎁터
DATADATA
어댑터 뷰계층구조 잘 봐두기 - ArrayAdapter : 객체 배열이나
리소스에 정의된 배열로부터 데이터를 가져옴 .
- CursorAdapter : 데이터베이스로 부터 데이터를 가져옴 .
- SimpleAdapter : XML 파일의 정적인 데이터를 가져옴 .
어댑터 뷰의 기본 리스트뷰
리스트 뷰 어댑터 뷰의 대표 위젯으로 항목들을
수직으로 펼쳐서 보여주는 것
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 )
어댑터 뷰의 기본 리스트뷰
대표 속성 choiceMode
항목을 선택하는 모드 , 선택을 허용하려면 사용자가 누를 수 있는 체크 박스나 라디오 버튼이 레이아웃에 배치되어 있어야 한다 .
divider 항목사이에 구분선을 지정한다 . dividerHeight 로 높이를 지정할 수 있다 .
entries 리스트 뷰에 표시할 배열을 지정한다 .
어댑터 뷰의 기본 리스트뷰
항목 편집 - 리스트뷰에 항목을 넣거나 뺄 때는 리스트 뷰
자체를 프로그래밍 하는 것이 아니라 어댑터와 연결된 원본을 편집해야 한다 .
- 원본을 편집한 후에는 BaseAdapter 의 notifyDataSetChanged() 메서드를 호출하여 참조하고 있는 원본 데이터가 변경되었음을 알려야 한다 .
어댑터 뷰의 기본 리스트뷰
커스텀 항목 뷰 - 이건 너무 심오해 정리할 수가 없다 한 10 번읽어보면 알게됨 소스도 어려우므로 꼭 해보길 추천
어댑터 뷰의 기본 리스트뷰
마무리
- 안드로이드의 리스트 뷰는 유연성이 굉장히 좋은 편이다 .
- 어댑터와 분리되어 있어 임의의 원본으로부터 데이터를 공급받을 수 있으며 레이아웃을 커스텀 디자인 할 수 있으므로 출력 방식에도 제한이 없다 .
- 이질적인 뷰를 한 리스트에 넣을 경우 상당히 비 효율적이다 . 이럴땐 걍 LinearLayout 을 쓰는게 ..
어짜피 엑티비티로 쓸꺼면 리스트액티비티 - 리스트 뷰는 그 자체 덩치가 크고 다른 뷰를
포함할 수 있는 뷰 그룹이라 보통 액티비티 전체를 가득 채운다 .
- 그래서 아예 시스템 차원에서 리스트 뷰만으로 액티비티를 구성하는 ListActivity 클래스가 제공된다 .
- setContentView() 호출문이 필요 없다 . - setAdapter() 대신 setListAdapter 로
한방에 ..!
파법 파법 파법 팝업 !! 스피너
스피너 리스트 뷰처럼 목록을 표시하며
클릭할 때만 팝업으로 뜨는 위젯
- 스피너는 대체로 여러 가지 선택 사항중 하나를 선택 받을 때만 사용된다 .
- 스피너는 선택 사항에 대한 프롬프트 메시지를 팝업 상단에 따로 표시할 수 있다 .
결국 테이블……… 그리드
그리드 뷰 항목들을 2 차원의 표 형태로
출력하는 위젯 .
- 넓게 보여주므로 대량의 데이터 중 하나를 선택받을 때 적합하다 .
수평스크롤 !!! 갤러리
갤러리 중앙이 고정되어 있고 수평으로
스크롤되는 어댑터 뷰이다 . - 가장 전형적인 사용 예는 이미지 선택기이다 .