2024. 3. 31. 18:35, ๐ฑAndroid Study
๋ฐ์ํ
Adpater View
1. ์ด๋ํฐ ๋ทฐ (Adapter View)
- ์ฌ๋ฌ๊ฐ์ ํญ๋ชฉ์ ๋ค์ํ ํ์์ผ๋ก ๋์ดํ๊ณ ์ ํ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ทฐ
- ๋ฆฌ์คํธ๋ทฐ(ListView)๋ ํญ๋ชฉ์ ์์ง์ผ๋ก ๋์ด์ํค๋ ๋ฐฉ์
- ๊ทธ๋ฆฌ๋๋ทฐ(GridView)๋ ํญ๋ชฉ์ ๊ฒฉ์ ํํ๋ก ๋์ด์ํค๋ ๋ฐฉ์ - ์ด๋ํฐ ๋ทฐ๋ ํ์ํ ํญ๋ชฉ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๊ด๋ฆฌํ์ง ์๊ณ , ์ด๋ํฐ๋ผ๋ ๊ฐ์ฒด๋ก๋ถํฐ ๊ณต๊ธ ๋ฐ์
- ์ด๋ํฐ์ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ๋ฐํ์ผ๋ก ํ์ํ ์ ๋ณด๋ฅผ ์์ฒญ, ํญ๋ชฉ๋ทฐ๋ฅผ ํ๋ฉด์ ํ์ํ๊ฑฐ๋ ์ ํ๋ ํญ๋ชฉ๋ทฐ๋ฅผ ์ฒ๋ฆฌ
2. ์ด๋ํฐ (Adapter)
- ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ๋ฐ์ดํฐ ์๋ณธ๊ณผ ์ด๋ํฐ๋ทฐ(ListView, GridView) ์ฌ์ด์ ์ค๊ณ ์ญํ
- ์ด๋ํฐ๋ทฐ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ํ์ํ๋ ๋ฐฉ๋ฒ
1. ์ด๋ํฐ๋ทฐ๊ฐ ์ด๋ํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์๋ณธ์ด ์ด๋ํฐ์ ์ค์ , ์ด๋ํฐ๋ทฐ์๋ ์ด๋ํฐ๊ฐ ์ค์
2. ์ด๋ํฐ๋ทฐ๋ ํญ๋ชฉ์ ํ์ํ๊ธฐ ์ํด์ ํ์ํ ํญ๋ชฉ์ ์ด ๊ฐ์ ํ์
(์ด๋ํฐ์ getCount() ๋ฉ์๋๋ฅผ ํตํด ํ์ฌ ์ด๋ํฐ๊ฐ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ ํญ๋ชฉ์ ์ด ๊ฐ์๋ฅผ ๋ฐํ)
3. ์ด๋ํฐ ๋ทฐ๋ ์ด๋ํฐ์ getView() ๋ฉ์๋๋ฅผ ํตํด์ ํ๋ฉด์ ์ค์ ๋ก ํ์ํ ํญ๋ชฉ๋ทฐ๋ฅผ ์ป๊ณ , ์ด๋ฅผ ํ๋ฉด์ ํ์ - ์ฌ์ฉ์๊ฐ ์ด๋ํฐ๋ทฐ์ ํน์ ์์น์ ํญ๋ชฉ์ ์ ํํ์์ ๋, ์ด๋ํฐ๋ทฐ๋ ์ ํ๋ ํญ๋ชฉ, ํญ๋ชฉID, ํญ๋ชฉ๋ทฐ๋ฅผ ์ด๋ํฐ์ getItem(), getItemId(), getView() ๋ฉ์๋๋ฅผ ํตํด ์ป์ด์์ ์ด๋ฅผ ํญ๋ชฉ์ ํ ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ธฐ์ ๋๊ฒจ์ค
3. ์ด๋ํฐ ์ข ๋ฅ
๊ฐ ์ด๋ํฐ๋ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ์์ค์ ๋ฐ์ดํฐ ํ์ ๋ฐฉ๋ฒ์ ๋ง๊ฒ ์ค๊ณ
์ด๋ฌํ ์ด๋ํฐ๋ค์ ์ ์ ํ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ํ ์ ์์
1) BaseAdapter
- ์ด๋ํฐ ํด๋์ค์ ๊ณตํต์ ์ธ ๊ธฐ๋ณธ ๊ตฌํ (Android SDK์์ ์ ๊ณตํ๋ ์ถ์ ํด๋์ค)
- ๊ฐ๋ฐ์๊ฐ ์ง์ ์ฌ์ฉ์ ์ ์ ์ด๋ํฐ ๊ตฌํํ ๋ ์ฌ์ฉ
- getView(), getItem(), getItemId(), getCount()์ ๊ฐ์ ๋ฉ์๋๋ฅผ ๊ตฌํํ์ฌ ๋ฐ์ดํฐ์ ๋ทฐ๋ฅผ ์ฐ๊ฒฐ
2) ArrayAdapter
- ๊ฐ์ฒด ๋ฐฐ์ด์ด๋ ๋ฆฌ์์ค์ ์ ์๋ ๋ฐฐ์ด๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ๋ฆฌ์คํธ ํํ๋ก ํ์ํ๋ ์ด๋ํฐ
- ์ฃผ๋ก ListView, Spinner ๋ฑ์ AdapterView์ ํจ๊ป ์ฌ์ฉ
- ๊ธฐ๋ณธ์ ์ผ๋ก ArrayAdapter(Context context, int resource, T[] objects) ์์ฑ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑ
- ๋ฌธ์์ด ๋ฐฐ์ด์ด๋ ๋ฆฌ์คํธ๋ฅผ ๋ฆฌ์คํธ๋ทฐ์ ํ์ํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ
3) CursorAdapter
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ๋ฆฌ์คํธ๋ ์คํผ๋ ๋ฑ์ ํ์ํ๋ ๋ฐ ์ฌ์ฉ
- ์ฃผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ธ Cursor๋ฅผ ๊ฐ์ง๊ณ ๋ฐ์ดํฐ๋ฅผ ํ์
- ๊ธฐ๋ณธ์ ์ผ๋ก CursorAdapter(Context context, Cursor c) ์์ฑ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ ์ปฌ๋ผ์ ๋ทฐ์ ํ์ํ๊ฑฐ๋ ํน์ ์ปฌ๋ผ ๊ฐ์ ๊ฐ์ ธ์์ ๊ฐ๊ณตํ์ฌ ํ์ํ ์ ์์
4) SimpleAdapter
- ๋ฐ์ดํฐ๋ฅผ Map(ํค, ๊ฐ)์ ๋ฆฌ์คํธ๋ก ๊ด๋ฆฌํ๊ณ , ์ด๋ฅผ XML ํ์ผ์ ์ ์๋ ๋ทฐ์ ๋งคํํ์ฌ ํ์ํ๋ ๋ฐ ์ฌ์ฉ
- ๋ฐ์ดํฐ์ ๋ทฐ๋ฅผ ์ง์ ๋งคํํ๋ ๋ฐ ์ ์ฉ
- ์ฃผ๋ก ๋ฐ์ดํฐ๊ฐ ๊ฐ๋จํ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ฉฐ, ๋ณต์กํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ์๋ ์ ํ์ด ์์
- SimpleAdapter(Context context, List> data, int resource, String[] from, int[] to) ์์ฑ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑ
- ๋ฐ์ดํฐ๋ฅผ Map์ผ๋ก ์ ์ํ๊ณ , ํด๋น Map์ ํค ๊ฐ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ทฐ์ ๋งคํ
- ์๋๋ก์ด๋ ๊ณต์๋ฌธ์ Adapter
- ์๋๋ก์ด๋ ๊ณต์๋ฌธ์ AdapterView
- [์๋๋ก์ด๋ ๊ณต์๋ฌธ์ ํํค์น๊ธฐ] Adapter, AdapterView, ListView์ ๋ชจ๋ ๊ฒ!
๋ฐ์ํ
๐ฌ C O M M E N T