메뉴 건너뛰기

조회 수 7864 추천 수 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
번호 제목 날짜 조회 수
77 안드로이드 스튜디오 actionbar(액션바) 사라짐 file 2020.12.14 639
76 패키지명을 한꺼번에 변경하기 (Refactor) file 2020.12.14 299
75 하이브리드앱 기본 - WebView로 웹페이지 띄우기 file 2020.12.14 1032
74 ListView 리스트뷰 연습3 - 커스텀 리스트뷰 (Custom ListView) file 2020.12.14 907
73 초기화면 페이지를 만들어보자. splash 페이지 제작 file 2020.12.14 290
72 안드로이드 앱배포하기 apk 만들기 file 2020.12.14 333
71 안드로이드 입문 연습문제 3문항 - CheckBox, RadioButton, EditText, Spinner, 이벤트연습 file 2020.12.14 482
70 Apk manager 이용해 Decompile (디컴파일) 하기 file 2021.03.16 1635
69 안드로이드 arrayList 를 Json으로 변환 / jsonarry file 2021.03.29 326
68 안드로이드 unescape /escape [StringEscapeUtils로 해결] file 2021.03.29 348
67 안드로이드 스튜디오 - 싱글톤 패턴 (SingleTon Pattenr) 클래스 자동 생성 file 2021.03.29 629
66 안드로이드 스튜디오 - getter/setter 메소드 자동생성 file 2021.03.29 589
65 안드로이드 스튜디오 - 필수 재정의 함수 자동 코드 추가 file 2021.03.29 195
64 안드로이드 스튜디오 - 코드 자동 들여쓰기 file 2021.03.29 421
63 안드로이드 - 리니어 레이아웃 (Linear Layout) file 2021.03.29 320
62 안드로이드 - 랠러티브 레이아웃(Relative Layout) file 2021.03.29 242
61 안드로이드 - 프레임레이아웃 (FrameLayout) file 2021.03.29 520
60 안드로이드 - 에디트텍스트(EditText) 사용법 정리 file 2021.03.29 2769
59 버튼 생성, 이벤트 처리 file 2021.03.31 237
58 Java에서 XML 불러와서 동적 변화 주기 file 2021.03.31 290
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved