메뉴 건너뛰기

조회 수 7852 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

1. 어댑터 뷰(Adapter View)

- 어댑터 뷰는 ViewGroup에서 파생된 클래스로써 여러개의 차일드 뷰를 가질수 있습니다.

- 어댑터 뷰는 표실항 항목의 데이터를 어댑터(Adapter) 객체로부터 공급 받는 형태의 뷰입니다.

- 리스트뷰, 그리드뷰, 스피너, 갤러리등을 묶어 어댑터 뷰라고 합니다.

- 사용자와 상호작용도 처리합니다 (클릭이벤트 같은?)

 

2. 어댑터(Adapter)

- 어댑터는 어댑터 뷰에게 데이터를 공급하는 객체로써 원본으로부터 얻은 데이터를 관리합니다.

   어댑터 뷰는 어댑터에게 받은 데이터를 화면에 출력하는 역활을 하는 것이구요.


* 왜 굿이 어댑터를 이용해서 리스트뷰에 데이터를 전달할까요? 그냥 리스트뷰에서 바로 가져다 쓰면 안될 까?

  저도 자세히는 모르지만, 어댑터 뷰를 이용하게되면 데이터가 넘치면 자동으로 스크롤이 생기고

  xml형태로 미리 만들어 놓은 리스트 뷰 형태가 있어 가져다 쓰면 되기 때문에 편리합니다.


한 번 어댑터에 필요한 매개변수들을 살펴 봅시다.

* 어레이 어댑터 생성자 매개변수

 ArrayAdapter(Context context, int textViewResourceId, List<T> objects)

 ArrayAdapter(Context context, int textViewResourceId, T[] objects)

 

- 첫번째 매개변수

 : Context를 매개변수로 하기때문에 Context의 subclass인 Activity 클래스를 넣어주면 됩니다. 안드로이드 프로젝트를 생성하

   면 Activity를 상속받은 클래스를 하나 만들기 때문에 this를 넣어주면 됩니다.


- 두번째 매개변수

 : 정수형태의 자원의 ID를 달라고 합니다, 해당 ID는 안드로이드에서 XML형태로 미리 만들어 놓은 자원의 ID를 넣으면 됩니다.

   Android에서 미리 만들어 놓은 디자인을 사용함으로써 ListView에 들어갈 ChildeView의 디자인에 신경을 덜 써도 됩니다.


* 안드로이드에서 지원하는 ChildeView 모양

리소스 ID

설명

Simple_list_item_1

하나의 텍스트 뷰로 구성된 레이아웃

Simple_list_item_2

두 개의 텍스트 뷰로 구성된 레이아웃

Simple_list_item_checked

오른쪽에 체크 표시가 나타난다.

Simple_list_item_single_choice

오른쪽에 라디오 버튼이 나타난다.

Simple_lsit_item_multiple_choice

오른쪽에 체크 버튼이 나타난다.



* 여기서 생성되는 하나 하나가 모두 view라고 보시면 됩니다. 이를 adapter가 만들어 주는 것이구요.

- Simple_list_item_1

가장 기본적인 모입니다.


- Simple_list_item_checked

- Simple_lsit_item_multiple_choice


- 세번째 매개변수

 : List인터페이스를 상속받은 ArrayList, Stack 등의 배열 클래스 객체를 넣을 수도 있고 단순 배열형태도 넣을 수 있습니다.


어댑터는 대충 이런느낌?

중간에서 원본을 참조해서 어댑터뷰(=리스트뷰)에게 전달하는 역할을 합니다.



다음 시간에는 코드를 보도록 합시다.



List of Articles
번호 제목 날짜 조회 수
157 [하이브리드앱] 링크를 웹뷰가 아닌 새로운 브라우저에서 열기 2021.09.30 293
156 간단한 mp3 플레이어 만들기 , 음악넣기 , 노래재생 file 2016.06.07 14624
155 구글맵 snippet을 두줄이상으로 구현하기 file 2020.12.14 481
154 구글맵으로 GPS 현재위치 실시간 연동하기 file 2020.12.14 2456
153 내가 입력한 글자 Toast로 나오게 하기 file 2015.07.26 6896
152 네트워크 상태 변화 감지하기(BroadcastReceiver 사용) 2015.07.16 9935
151 네트워크 연결 상태 및 3G/WIFI 연결상태 체크하기 2016.03.18 7131
150 네트워크를 통해 받은 이미지를 파일로 저장하고, 크기 조절해서 불러오기 2015.07.16 6155
149 노티피케이션(Notification) 사용법 / Notification.Builder , NotificationManager file 2016.06.10 13470
148 다운로드 매니저(DownloadManager)에 대해 알아보자 file 2015.07.01 9246
147 맵에 오버레이 추가하여 아이템 넣어보기 2014.08.28 6474
146 문자를 음성으로 변환(TTS)에 대해 알아보자 file 2015.07.01 7768
145 버튼 누르면 이미지 바꾸기 file 2015.07.26 6613
144 버튼 생성, 이벤트 처리 file 2021.03.31 236
143 버튼 이벤트 file 2021.03.31 205
142 버튼 이벤트 추가하기 file 2021.03.31 191
141 버튼(Button) 패딩 제거 2016.06.10 7651
140 블루투스 및 비콘 관련 정리 2015.07.26 10828
139 블루투스(Bluetooth) 통신에 대해 알아보자 file 2015.07.01 7983
138 블루투스(Bluetooth) 통신에 대해 알아보자 file 2015.07.26 14048
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved