AdapterView / Adapter

Hue·2023년 2월 16일
0

Android/Kotlin

목록 보기
7/42

AdapterView

대량의 Data를 화면에 보여주기 위해 사용하는 View Group

Acticity 화면에 빛을 쏘고 터치를 받아들임
String이나 이미지 Data등을 직접 출력할 수 없고 View만 보여줌
∴ Data를 보여줄 수 있는 적합한 View를 만들어서 Activity에 붙임
Data의 양이 늘어날 수록 매번 View를 만들기 어려움 --> AdapterView

Adapter

Adapter가 규격이 맞지 않은 두 전력을 맞춰주는 것처럼 문자열을 보여줄 수 없는 Activity를 위해 그에 적합한 View로 맞춰주는 기능을 함

대량의 Data (문자열, 배열 등)와 Item의 layout 모양 설계도 (xml)를 주면 Data만큼 View를 만들어줌

BUT 기존 ViewGroup은 Adapter가 한꺼번에 주는 View들을 보여주는 기능없음
--> AdapteView를 이용해서 Activity에 보여줄 수 있음
보여주는 방식에 따라 사용하는 AdapterView를 적절하게 사용하자
목록형태 : ListView
콤보박스 : Spinner
격자형태 : GridView

ⓐ ListView

data목록이 화면을 넘어가면 자체적으로 스크롤 가능

<ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:entries="@array/datas"/>

entries : adapter를 자동으로 만들어줌 (대량의 문자열 data가 xml 내에 있을 경우만 가능, 없다면 adapter 직접 생성해야함)

ArrayAdapter adapter;
ListView listView;

adapter = new ArrayAdapter(this, R.layout.listview_item, datas);
listView = findViewById(R.id.listView);
        listView.setAdapter(adapter);

새로운 데이터 추가 ==> 직접 View를 추가하는 것이 아니라 Data(대량의 데이터)를 추가해서 Adapter가 만들 View의 갯수를 늘리는 것

ⓑ Spinner

xml에 있는 대량의 데이터 java에서 사용
1.getResource
2.ArrayAdapter.createFromResource()

ⓒ GridView

<GridView
        android:id="@+id/gridview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="3"/>

entries 속성 존재하지 않음 = .xml로 데이터를 넣는것 허용하지 않겠다


Custom - ListView

BaseAdapter 기능 상속받아 새로운 Adapter를 설계
4가지의 추상메소드 (AdapterView가 Adapter로부터 요청하는 명령)
.getCount()
.getItem()
.getItemId()
.getView()

0개의 댓글