SlideShare a Scribd company logo
1 of 24
Jake Yoon
Date : 2014. 08. 08
Samsung Software Membership Seminar
리스트 뷰1.
TABLE OF CONTENTS
2.
3.
커스텀 항목 뷰
다음 시간 숙제 소개
Samsung Software Membership Seminar
1. 리스트 뷰 – 어댑터 뷰
Samsung Software Membership Seminar
리스트 뷰는 여러 개의 항목을 수직으로 표시하는 위젯 이다.
수직 스크롤을 지원하므로 항목의 개수가 아무리 많아도 다 표시할 수 있다.
리스트 뷰에 표시되는 항목은 임의의 뷰 이므로 어떠한 형태로든 정보를 표현할 수 있다.
예 : 카카오톡의 리스트 뷰
1. 리스트 뷰 – 어댑터 뷰
Samsung Software Membership Seminar
안드로이드는 리스트뷰 뿐만 아니라 항목의 집합을 표시하는 여러가지 위젯을 제공한다.
리스트뷰, 그리드뷰, 스피너, 갤러리 등을 어댑터뷰라고 부른다.
표시할 데이터를 직접 관리하지 않고 어댑터로부터 공급받기 때문에 어댑터뷰라고 부른다.
View
ViewGroup
AdapterView
AbsSpinner
Spinner
Gallery
AbsListView
ListView
GridView
ExpandableListView
어댑터뷰의 계층구조
1. 리스트 뷰 – 어댑터 뷰
Samsung Software Membership Seminar
어댑터는 원본으로부터 얻은 데이터를 관리
어댑터뷰는 어댑터가 전달한 데이터를 화면에 표시
데이터 원본어댑터뷰 어댑터
항목 개수는?
5개다
3번 항목 뷰 요청
옛다!
원본 참조
어댑터뷰, 어댑터, 데이터원본의 관계
1. 리스트 뷰 – 어댑터 뷰
Samsung Software Membership Seminar
Adapter – 어댑터뷰와 데이터간의 연결을 제공하고 항목의 집합을 관리하는 메서드 선언
ListAdapter – 리스트뷰와 연결에 필요한 메서드를 정의
SpinnerAdapter – 스피너와 연결에 필요한 메서드를 정의
BaseAdapter – 어댑터에 필요한 기본적인 기능을 구현한다. (ex: getCount, getView)
ArrayAdapter – 객체 배열이나 리소스에 정의된 배열로부터 데이터를 받아올 때 사용
CursorAdapter – 데이터베이스로부터 데이터를 공급받아올 때 사용
SimpleAdapter – XML 파일의 정적인 데이터를 원본으로 사용
Adapter
SpinnerAdapterListAdapter
BaseAdapter
ArrayAdapter<T> CursorAdapter SimpleAdapter
어댑터의 계층구조
1. 리스트 뷰 – 리스트 뷰
Samsung Software Membership Seminar
ListViewTest라는 신규 프로젝트를 생성하고
590p에 있는 소스를 타이핑해보자!
1. 리스트 뷰 – 리스트 뷰
Samsung Software Membership Seminar
ArrayAdapter(Context context, int textViewResourceId, List<T> objects)
ArrayAdapter(Context context, int textViewResourceId, T[] objects)
context – 현재 컨텍스트이며, 액티비티를 넘겨준다.
textViewResourceId - 항목을 표시할 레이아웃의 리소스 ID
(직접 레이아웃을 정의할 수도 있고 안드로이드가 제공하는 레이아웃을 사용할수도 있다.)
objects – 어댑터로 공급될 데이터의 원본
void setAdapter (T adapter)
1. 리스트 뷰 – 리스트 뷰
Samsung Software Membership Seminar
ListFromArray라는 클래스와 arrays.xml 파일을
생성하고
592, 593p에 있는 소스를 타이핑해보자!
1. 리스트 뷰 – 리스트 뷰
Samsung Software Membership Seminar
static ArrayAdapter<CharSequence> createFromResource (Context context, int
textArrayResId, int textViewResId)
context – 현재 컨텍스트이며, 액티비티를 넘겨준다.
textArrayResId – 문자열 배열의 리소스 ID
textViewResId – 항목을 표시할 레이아웃의 리소스 ID
1. 리스트 뷰 – 리스트 뷰
Samsung Software Membership Seminar
어댑터
배열
XML 리소스
데이터베이스
네트워크
갤러리
그리드뷰
스피너
리스트뷰
어댑터의 유연성
1. 리스트 뷰 – 리스트 뷰
Samsung Software Membership Seminar
ListAttr이라는 클래스를 생성하고
595, 596p에 있는 소스를 타이핑 해보자.
1. 리스트 뷰 – 리스트 뷰
Samsung Software Membership Seminar
choiceMode – 항목을 선택하는 모드
none : 항목을 선택할 수 없다.
singleChoice : 하나의 항목만 선택할 수 있다.
multipleChoice : 여러 개의 항목을 선택할 수 있다.
divider – 항목 사이의 구분선을 지정
dividerHeight – 구분선의 높이를 지정
entries – 리스트뷰에 표시할 배열을 지정
리스트뷰의 속성
1. 리스트 뷰 – 항목 선택
Samsung Software Membership Seminar
ListItemSelect라는 클래스를 생성하고
597p에 있는 소스를 타이핑해보자!
1. 리스트 뷰 – 항목 선택
Samsung Software Membership Seminar
void onItemClick(AdapterView<?> parent, View view, int position, long id)
parent – 리스트뷰 객체
view – 클릭된 항목 뷰
position – 클릭된 항목의 index
id – 클릭된 항목의 id
void setOnItemClickListener(AdapterView.OnItemClickListener listener)
1. 리스트 뷰 – 항목 편집
Samsung Software Membership Seminar
ListAddDel이라는 클래스와 listadddel 레이아웃
을 생성하고
598, 599p에 있는 소스를 타이핑해보자!
1. 리스트 뷰 – 항목 편집
Samsung Software Membership Seminar
int getCheckedItemPosition ()
선택된 항목의 위치를 리턴. 단, 선택된 항목이 없을 경우 ListView.INVALID_POSITION과
같은 값(-1)을 리턴
void notifyDataSetChanged ()
원본이 변경되었음을 어댑터에게 알리는 함수
반드시 이 함수를 호출해야 변경된 데이터의 결과가 어댑터뷰에 표현된다.
602 ~ 604p는 생략
2. 항목 뷰 – 커스텀 항목 뷰
Samsung Software Membership Seminar
좀 더 복잡한 형태로 리스트뷰를 만들어보자.
복잡한 형태로 리스트뷰를 만들고 싶다면 기본 레이아웃을 사용하지 말고 커스텀 뷰를
만들어 사용할 수 있으며 항목 안의 배치를 그야말로 마음대로 만들 수 있다.
기본 리스트뷰와 커스텀 리스트뷰
Samsung Software Membership Seminar
ListIconText라는 신규 프로젝트를 생성하고
606~609p에 있는 소스를 타이핑해보자!
2. 항목 뷰 – 커스텀 항목 뷰
Samsung Software Membership Seminar
MyItem 클래스
리스트뷰에 출력할 항목 하나를 표현한다. Icon은 출력할 이미지이며 Name은 그 옆에 표
시할 문자열이다.
MyListAdapter
리스트뷰에게 항목의 집합을 제공하는 어댑터 클래스이다.
BaseAdapter를 상속받아서 구현하였으며, 데이터원본과 리스트뷰 사이의 중계 역할을 한
다.
2. 항목 뷰 – 커스텀 항목 뷰
데이터 원본어댑터뷰 어댑터
항목 개수는?
5개다
3번 항목 뷰 요청
옛다!
원본 참조
Samsung Software Membership Seminar
int getCount()
어댑터에 몇 개의 항목이 있는지 리턴하는 함수
View getView (int position, View convertView, ViewGroup parent)
항목 하나를 출력하기 위한 뷰를 생성하여 리턴하는 함수
리스트뷰는 각 항목을 출력할 때마다 어댑터의 getView 메서드를 호출하여 뷰를 요청하
며 리턴된 뷰를 리스트뷰의 해당 위치에 배치한다.
position – 생성할 항복의 index
convertView – 표현할 항복의 뷰
parent – 리스트뷰
2. 항목 뷰 – 커스텀 항목 뷰
Icon
Name
데이터 원본 (MyItem) 항목 레이아웃
숙제 안내
Samsung Software Membership Seminar
Q&A
Samsung Software Membership Seminar
수고하셨습니다.
Samsung Software Membership Seminar

More Related Content

Viewers also liked

[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문Taeho Kim
 
UI/UX 디자인 기본부터 알아봅시다.
UI/UX 디자인 기본부터 알아봅시다.UI/UX 디자인 기본부터 알아봅시다.
UI/UX 디자인 기본부터 알아봅시다.FAST CAMPUS
 
Android 개론
Android 개론Android 개론
Android 개론운용 최
 
Java, android 스터티10
Java, android 스터티10Java, android 스터티10
Java, android 스터티10Heejun Kim
 
[ 유니티게임제작캠프 ] 취업준비는피씨방에서
[ 유니티게임제작캠프 ] 취업준비는피씨방에서[ 유니티게임제작캠프 ] 취업준비는피씨방에서
[ 유니티게임제작캠프 ] 취업준비는피씨방에서FAST CAMPUS
 
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionAndroid Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionYoungSu Son
 
[NEXT] Android Profiler
[NEXT] Android Profiler[NEXT] Android Profiler
[NEXT] Android ProfilerYoungSu Son
 
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)YoungSu Son
 
안드로이드 개발하기_1st
안드로이드 개발하기_1st안드로이드 개발하기_1st
안드로이드 개발하기_1stEunGi Hong
 
Git branch stregagy & case study
Git branch stregagy & case studyGit branch stregagy & case study
Git branch stregagy & case studyWoo Jin Kim
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 YoungSu Son
 
블로그의이해
블로그의이해블로그의이해
블로그의이해Chaenam, Jun
 
My Presentation Jwz
My Presentation JwzMy Presentation Jwz
My Presentation JwzMarsS3008
 
нетрадиционная» русская грамматика
нетрадиционная» русская грамматиканетрадиционная» русская грамматика
нетрадиционная» русская грамматикаekaterina7
 
Android Programming - AdapterView
Android Programming - AdapterViewAndroid Programming - AdapterView
Android Programming - AdapterViewJake Yoon
 
Mecanismes de transmissio circular
Mecanismes de transmissio circularMecanismes de transmissio circular
Mecanismes de transmissio circularSusana Valls Andreu
 
Android Programming - Menus
Android Programming - MenusAndroid Programming - Menus
Android Programming - MenusJake Yoon
 
2012년 소셜미디어의 현황과 전망
2012년 소셜미디어의 현황과 전망2012년 소셜미디어의 현황과 전망
2012년 소셜미디어의 현황과 전망Chaenam, Jun
 

Viewers also liked (20)

[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문
 
UI/UX 디자인 기본부터 알아봅시다.
UI/UX 디자인 기본부터 알아봅시다.UI/UX 디자인 기본부터 알아봅시다.
UI/UX 디자인 기본부터 알아봅시다.
 
Android 개론
Android 개론Android 개론
Android 개론
 
Java, android 스터티10
Java, android 스터티10Java, android 스터티10
Java, android 스터티10
 
[ 유니티게임제작캠프 ] 취업준비는피씨방에서
[ 유니티게임제작캠프 ] 취업준비는피씨방에서[ 유니티게임제작캠프 ] 취업준비는피씨방에서
[ 유니티게임제작캠프 ] 취업준비는피씨방에서
 
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionAndroid Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + Genymotion
 
[NEXT] Android Profiler
[NEXT] Android Profiler[NEXT] Android Profiler
[NEXT] Android Profiler
 
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)
[NEXT] Android 개발 경험 프로젝트 5일차 (Actionbar, SideNavigation)
 
안드로이드 개발하기_1st
안드로이드 개발하기_1st안드로이드 개발하기_1st
안드로이드 개발하기_1st
 
Git branch stregagy & case study
Git branch stregagy & case studyGit branch stregagy & case study
Git branch stregagy & case study
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법
 
블로그의이해
블로그의이해블로그의이해
블로그의이해
 
My Presentation Jwz
My Presentation JwzMy Presentation Jwz
My Presentation Jwz
 
нетрадиционная» русская грамматика
нетрадиционная» русская грамматиканетрадиционная» русская грамматика
нетрадиционная» русская грамматика
 
Android Programming - AdapterView
Android Programming - AdapterViewAndroid Programming - AdapterView
Android Programming - AdapterView
 
Mecanismes de transmissio circular
Mecanismes de transmissio circularMecanismes de transmissio circular
Mecanismes de transmissio circular
 
MuBu MCG June 2010
MuBu MCG June 2010MuBu MCG June 2010
MuBu MCG June 2010
 
Android Programming - Menus
Android Programming - MenusAndroid Programming - Menus
Android Programming - Menus
 
2012년 소셜미디어의 현황과 전망
2012년 소셜미디어의 현황과 전망2012년 소셜미디어의 현황과 전망
2012년 소셜미디어의 현황과 전망
 
Problemasdolor
ProblemasdolorProblemasdolor
Problemasdolor
 

Similar to 안드로이드 프로그래밍 정복 - Android Study #어댑터뷰

안드로이드스터디 5
안드로이드스터디 5안드로이드스터디 5
안드로이드스터디 5jangpd007
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본Lee Sang-Ho
 
Jurano강의 lec7 android_annotations_resource_injection_and_rest_api
Jurano강의 lec7 android_annotations_resource_injection_and_rest_apiJurano강의 lec7 android_annotations_resource_injection_and_rest_api
Jurano강의 lec7 android_annotations_resource_injection_and_rest_apiJu-ri Seo
 
[1A5]효율적인안드로이드앱개발
[1A5]효율적인안드로이드앱개발[1A5]효율적인안드로이드앱개발
[1A5]효율적인안드로이드앱개발NAVER D2
 
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기NAVER Engineering
 
Java, android 스터티7
Java, android 스터티7Java, android 스터티7
Java, android 스터티7Heejun Kim
 
Collection framework
Collection frameworkCollection framework
Collection frameworkssuser34b989
 
17 adapter view & db
17 adapter view & db17 adapter view & db
17 adapter view & db운용 최
 
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경YoungSu Son
 
iOS 앱 개발 강의 자료 #2
iOS 앱 개발 강의 자료 #2iOS 앱 개발 강의 자료 #2
iOS 앱 개발 강의 자료 #2Jeong-Hoon Mo
 
자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조중선 곽
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13hungrok
 
AWS re:Invent 2017
AWS re:Invent 2017AWS re:Invent 2017
AWS re:Invent 2017Jang Hoon
 
Youtube를활용한app만들기
Youtube를활용한app만들기Youtube를활용한app만들기
Youtube를활용한app만들기DaeHee Jang
 
[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기YoungSu Son
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Kyoung Up Jung
 

Similar to 안드로이드 프로그래밍 정복 - Android Study #어댑터뷰 (20)

안드로이드스터디 5
안드로이드스터디 5안드로이드스터디 5
안드로이드스터디 5
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
 
Django View Part 1
Django View Part 1Django View Part 1
Django View Part 1
 
Jurano강의 lec7 android_annotations_resource_injection_and_rest_api
Jurano강의 lec7 android_annotations_resource_injection_and_rest_apiJurano강의 lec7 android_annotations_resource_injection_and_rest_api
Jurano강의 lec7 android_annotations_resource_injection_and_rest_api
 
[1A5]효율적인안드로이드앱개발
[1A5]효율적인안드로이드앱개발[1A5]효율적인안드로이드앱개발
[1A5]효율적인안드로이드앱개발
 
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
 
Java, android 스터티7
Java, android 스터티7Java, android 스터티7
Java, android 스터티7
 
Collection framework
Collection frameworkCollection framework
Collection framework
 
17 adapter view & db
17 adapter view & db17 adapter view & db
17 adapter view & db
 
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
 
iOS 앱 개발 강의 자료 #2
iOS 앱 개발 강의 자료 #2iOS 앱 개발 강의 자료 #2
iOS 앱 개발 강의 자료 #2
 
5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)
 
자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조
 
Spring portfolio2
Spring portfolio2Spring portfolio2
Spring portfolio2
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13
 
AWS re:Invent 2017
AWS re:Invent 2017AWS re:Invent 2017
AWS re:Invent 2017
 
Youtube를활용한app만들기
Youtube를활용한app만들기Youtube를활용한app만들기
Youtube를활용한app만들기
 
[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기
 
React native study
React native studyReact native study
React native study
 

More from Jake Yoon

SOSCON 참관후기 공유세미나(1)
SOSCON 참관후기 공유세미나(1)SOSCON 참관후기 공유세미나(1)
SOSCON 참관후기 공유세미나(1)Jake Yoon
 
SOAP REST 이해
SOAP REST 이해SOAP REST 이해
SOAP REST 이해Jake Yoon
 
Google I/O Extended Korea Student #3 About - real Google I/O
Google I/O Extended Korea Student #3 About - real Google I/OGoogle I/O Extended Korea Student #3 About - real Google I/O
Google I/O Extended Korea Student #3 About - real Google I/OJake Yoon
 
Android virtualization을 통한 IoT구현
Android virtualization을 통한 IoT구현Android virtualization을 통한 IoT구현
Android virtualization을 통한 IoT구현Jake Yoon
 
2일차 20140402
2일차 201404022일차 20140402
2일차 20140402Jake Yoon
 
1일차 20140326
1일차 201403261일차 20140326
1일차 20140326Jake Yoon
 
Android Framework를 활용한 진정한 모바일 클라우드 이야기
Android Framework를 활용한 진정한 모바일 클라우드 이야기Android Framework를 활용한 진정한 모바일 클라우드 이야기
Android Framework를 활용한 진정한 모바일 클라우드 이야기Jake Yoon
 
소설네트워크 for iOS
소설네트워크 for iOS소설네트워크 for iOS
소설네트워크 for iOSJake Yoon
 
오픈소스하드웨어
오픈소스하드웨어오픈소스하드웨어
오픈소스하드웨어Jake Yoon
 
G+ Summer C Study 20130718(8일차)
G+ Summer C Study 20130718(8일차)G+ Summer C Study 20130718(8일차)
G+ Summer C Study 20130718(8일차)Jake Yoon
 
G+ Summer C Study 20130717(7일차)
G+ Summer C Study 20130717(7일차)G+ Summer C Study 20130717(7일차)
G+ Summer C Study 20130717(7일차)Jake Yoon
 
G+ Summer C Study 20130716(6일차)
G+ Summer C Study 20130716(6일차)G+ Summer C Study 20130716(6일차)
G+ Summer C Study 20130716(6일차)Jake Yoon
 
G+ Summer C Study 20130712(5일차)
G+ Summer C Study 20130712(5일차)G+ Summer C Study 20130712(5일차)
G+ Summer C Study 20130712(5일차)Jake Yoon
 
G+ Summer C Study 20130711(4일차)
G+ Summer C Study 20130711(4일차)G+ Summer C Study 20130711(4일차)
G+ Summer C Study 20130711(4일차)Jake Yoon
 
G+ Summer C Study 20130709(3일차)
G+ Summer C Study 20130709(3일차)G+ Summer C Study 20130709(3일차)
G+ Summer C Study 20130709(3일차)Jake Yoon
 
G+ Summer C Study 20130705(2일차)
G+ Summer C Study 20130705(2일차)G+ Summer C Study 20130705(2일차)
G+ Summer C Study 20130705(2일차)Jake Yoon
 
G+ Summer C Study 20130703(1일차)
G+ Summer C Study 20130703(1일차)G+ Summer C Study 20130703(1일차)
G+ Summer C Study 20130703(1일차)Jake Yoon
 
Jake yoon세미나
Jake yoon세미나Jake yoon세미나
Jake yoon세미나Jake Yoon
 

More from Jake Yoon (20)

SOSCON 참관후기 공유세미나(1)
SOSCON 참관후기 공유세미나(1)SOSCON 참관후기 공유세미나(1)
SOSCON 참관후기 공유세미나(1)
 
SOAP REST 이해
SOAP REST 이해SOAP REST 이해
SOAP REST 이해
 
Google I/O Extended Korea Student #3 About - real Google I/O
Google I/O Extended Korea Student #3 About - real Google I/OGoogle I/O Extended Korea Student #3 About - real Google I/O
Google I/O Extended Korea Student #3 About - real Google I/O
 
Android virtualization을 통한 IoT구현
Android virtualization을 통한 IoT구현Android virtualization을 통한 IoT구현
Android virtualization을 통한 IoT구현
 
2일차 20140402
2일차 201404022일차 20140402
2일차 20140402
 
1일차 20140326
1일차 201403261일차 20140326
1일차 20140326
 
Android Framework를 활용한 진정한 모바일 클라우드 이야기
Android Framework를 활용한 진정한 모바일 클라우드 이야기Android Framework를 활용한 진정한 모바일 클라우드 이야기
Android Framework를 활용한 진정한 모바일 클라우드 이야기
 
Dark Cloud
Dark CloudDark Cloud
Dark Cloud
 
소설네트워크 for iOS
소설네트워크 for iOS소설네트워크 for iOS
소설네트워크 for iOS
 
passU
passUpassU
passU
 
오픈소스하드웨어
오픈소스하드웨어오픈소스하드웨어
오픈소스하드웨어
 
G+ Summer C Study 20130718(8일차)
G+ Summer C Study 20130718(8일차)G+ Summer C Study 20130718(8일차)
G+ Summer C Study 20130718(8일차)
 
G+ Summer C Study 20130717(7일차)
G+ Summer C Study 20130717(7일차)G+ Summer C Study 20130717(7일차)
G+ Summer C Study 20130717(7일차)
 
G+ Summer C Study 20130716(6일차)
G+ Summer C Study 20130716(6일차)G+ Summer C Study 20130716(6일차)
G+ Summer C Study 20130716(6일차)
 
G+ Summer C Study 20130712(5일차)
G+ Summer C Study 20130712(5일차)G+ Summer C Study 20130712(5일차)
G+ Summer C Study 20130712(5일차)
 
G+ Summer C Study 20130711(4일차)
G+ Summer C Study 20130711(4일차)G+ Summer C Study 20130711(4일차)
G+ Summer C Study 20130711(4일차)
 
G+ Summer C Study 20130709(3일차)
G+ Summer C Study 20130709(3일차)G+ Summer C Study 20130709(3일차)
G+ Summer C Study 20130709(3일차)
 
G+ Summer C Study 20130705(2일차)
G+ Summer C Study 20130705(2일차)G+ Summer C Study 20130705(2일차)
G+ Summer C Study 20130705(2일차)
 
G+ Summer C Study 20130703(1일차)
G+ Summer C Study 20130703(1일차)G+ Summer C Study 20130703(1일차)
G+ Summer C Study 20130703(1일차)
 
Jake yoon세미나
Jake yoon세미나Jake yoon세미나
Jake yoon세미나
 

안드로이드 프로그래밍 정복 - Android Study #어댑터뷰

  • 1. Jake Yoon Date : 2014. 08. 08 Samsung Software Membership Seminar
  • 2. 리스트 뷰1. TABLE OF CONTENTS 2. 3. 커스텀 항목 뷰 다음 시간 숙제 소개 Samsung Software Membership Seminar
  • 3. 1. 리스트 뷰 – 어댑터 뷰 Samsung Software Membership Seminar 리스트 뷰는 여러 개의 항목을 수직으로 표시하는 위젯 이다. 수직 스크롤을 지원하므로 항목의 개수가 아무리 많아도 다 표시할 수 있다. 리스트 뷰에 표시되는 항목은 임의의 뷰 이므로 어떠한 형태로든 정보를 표현할 수 있다. 예 : 카카오톡의 리스트 뷰
  • 4. 1. 리스트 뷰 – 어댑터 뷰 Samsung Software Membership Seminar 안드로이드는 리스트뷰 뿐만 아니라 항목의 집합을 표시하는 여러가지 위젯을 제공한다. 리스트뷰, 그리드뷰, 스피너, 갤러리 등을 어댑터뷰라고 부른다. 표시할 데이터를 직접 관리하지 않고 어댑터로부터 공급받기 때문에 어댑터뷰라고 부른다. View ViewGroup AdapterView AbsSpinner Spinner Gallery AbsListView ListView GridView ExpandableListView 어댑터뷰의 계층구조
  • 5. 1. 리스트 뷰 – 어댑터 뷰 Samsung Software Membership Seminar 어댑터는 원본으로부터 얻은 데이터를 관리 어댑터뷰는 어댑터가 전달한 데이터를 화면에 표시 데이터 원본어댑터뷰 어댑터 항목 개수는? 5개다 3번 항목 뷰 요청 옛다! 원본 참조 어댑터뷰, 어댑터, 데이터원본의 관계
  • 6. 1. 리스트 뷰 – 어댑터 뷰 Samsung Software Membership Seminar Adapter – 어댑터뷰와 데이터간의 연결을 제공하고 항목의 집합을 관리하는 메서드 선언 ListAdapter – 리스트뷰와 연결에 필요한 메서드를 정의 SpinnerAdapter – 스피너와 연결에 필요한 메서드를 정의 BaseAdapter – 어댑터에 필요한 기본적인 기능을 구현한다. (ex: getCount, getView) ArrayAdapter – 객체 배열이나 리소스에 정의된 배열로부터 데이터를 받아올 때 사용 CursorAdapter – 데이터베이스로부터 데이터를 공급받아올 때 사용 SimpleAdapter – XML 파일의 정적인 데이터를 원본으로 사용 Adapter SpinnerAdapterListAdapter BaseAdapter ArrayAdapter<T> CursorAdapter SimpleAdapter 어댑터의 계층구조
  • 7. 1. 리스트 뷰 – 리스트 뷰 Samsung Software Membership Seminar ListViewTest라는 신규 프로젝트를 생성하고 590p에 있는 소스를 타이핑해보자!
  • 8. 1. 리스트 뷰 – 리스트 뷰 Samsung Software Membership Seminar ArrayAdapter(Context context, int textViewResourceId, List<T> objects) ArrayAdapter(Context context, int textViewResourceId, T[] objects) context – 현재 컨텍스트이며, 액티비티를 넘겨준다. textViewResourceId - 항목을 표시할 레이아웃의 리소스 ID (직접 레이아웃을 정의할 수도 있고 안드로이드가 제공하는 레이아웃을 사용할수도 있다.) objects – 어댑터로 공급될 데이터의 원본 void setAdapter (T adapter)
  • 9. 1. 리스트 뷰 – 리스트 뷰 Samsung Software Membership Seminar ListFromArray라는 클래스와 arrays.xml 파일을 생성하고 592, 593p에 있는 소스를 타이핑해보자!
  • 10. 1. 리스트 뷰 – 리스트 뷰 Samsung Software Membership Seminar static ArrayAdapter<CharSequence> createFromResource (Context context, int textArrayResId, int textViewResId) context – 현재 컨텍스트이며, 액티비티를 넘겨준다. textArrayResId – 문자열 배열의 리소스 ID textViewResId – 항목을 표시할 레이아웃의 리소스 ID
  • 11. 1. 리스트 뷰 – 리스트 뷰 Samsung Software Membership Seminar 어댑터 배열 XML 리소스 데이터베이스 네트워크 갤러리 그리드뷰 스피너 리스트뷰 어댑터의 유연성
  • 12. 1. 리스트 뷰 – 리스트 뷰 Samsung Software Membership Seminar ListAttr이라는 클래스를 생성하고 595, 596p에 있는 소스를 타이핑 해보자.
  • 13. 1. 리스트 뷰 – 리스트 뷰 Samsung Software Membership Seminar choiceMode – 항목을 선택하는 모드 none : 항목을 선택할 수 없다. singleChoice : 하나의 항목만 선택할 수 있다. multipleChoice : 여러 개의 항목을 선택할 수 있다. divider – 항목 사이의 구분선을 지정 dividerHeight – 구분선의 높이를 지정 entries – 리스트뷰에 표시할 배열을 지정 리스트뷰의 속성
  • 14. 1. 리스트 뷰 – 항목 선택 Samsung Software Membership Seminar ListItemSelect라는 클래스를 생성하고 597p에 있는 소스를 타이핑해보자!
  • 15. 1. 리스트 뷰 – 항목 선택 Samsung Software Membership Seminar void onItemClick(AdapterView<?> parent, View view, int position, long id) parent – 리스트뷰 객체 view – 클릭된 항목 뷰 position – 클릭된 항목의 index id – 클릭된 항목의 id void setOnItemClickListener(AdapterView.OnItemClickListener listener)
  • 16. 1. 리스트 뷰 – 항목 편집 Samsung Software Membership Seminar ListAddDel이라는 클래스와 listadddel 레이아웃 을 생성하고 598, 599p에 있는 소스를 타이핑해보자!
  • 17. 1. 리스트 뷰 – 항목 편집 Samsung Software Membership Seminar int getCheckedItemPosition () 선택된 항목의 위치를 리턴. 단, 선택된 항목이 없을 경우 ListView.INVALID_POSITION과 같은 값(-1)을 리턴 void notifyDataSetChanged () 원본이 변경되었음을 어댑터에게 알리는 함수 반드시 이 함수를 호출해야 변경된 데이터의 결과가 어댑터뷰에 표현된다. 602 ~ 604p는 생략
  • 18. 2. 항목 뷰 – 커스텀 항목 뷰 Samsung Software Membership Seminar 좀 더 복잡한 형태로 리스트뷰를 만들어보자. 복잡한 형태로 리스트뷰를 만들고 싶다면 기본 레이아웃을 사용하지 말고 커스텀 뷰를 만들어 사용할 수 있으며 항목 안의 배치를 그야말로 마음대로 만들 수 있다. 기본 리스트뷰와 커스텀 리스트뷰
  • 19. Samsung Software Membership Seminar ListIconText라는 신규 프로젝트를 생성하고 606~609p에 있는 소스를 타이핑해보자! 2. 항목 뷰 – 커스텀 항목 뷰
  • 20. Samsung Software Membership Seminar MyItem 클래스 리스트뷰에 출력할 항목 하나를 표현한다. Icon은 출력할 이미지이며 Name은 그 옆에 표 시할 문자열이다. MyListAdapter 리스트뷰에게 항목의 집합을 제공하는 어댑터 클래스이다. BaseAdapter를 상속받아서 구현하였으며, 데이터원본과 리스트뷰 사이의 중계 역할을 한 다. 2. 항목 뷰 – 커스텀 항목 뷰 데이터 원본어댑터뷰 어댑터 항목 개수는? 5개다 3번 항목 뷰 요청 옛다! 원본 참조
  • 21. Samsung Software Membership Seminar int getCount() 어댑터에 몇 개의 항목이 있는지 리턴하는 함수 View getView (int position, View convertView, ViewGroup parent) 항목 하나를 출력하기 위한 뷰를 생성하여 리턴하는 함수 리스트뷰는 각 항목을 출력할 때마다 어댑터의 getView 메서드를 호출하여 뷰를 요청하 며 리턴된 뷰를 리스트뷰의 해당 위치에 배치한다. position – 생성할 항복의 index convertView – 표현할 항복의 뷰 parent – 리스트뷰 2. 항목 뷰 – 커스텀 항목 뷰 Icon Name 데이터 원본 (MyItem) 항목 레이아웃
  • 22. 숙제 안내 Samsung Software Membership Seminar