๐Ÿ”ฅTIL๐Ÿ”ฅ์ŠคํŒŒ๋ฅดํƒ€ | ListView, GridView

hyihyiยท2024๋…„ 1์›” 4์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
27/70
post-thumbnail

๐Ÿ“Œ์ฐธ๊ณ  : ListView, GridView๋ณด๋‹ค RecyclerView๋ฅผ ํ™•์‹คํžˆ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ธด ํ•˜์ง€๋งŒ ์„ค์ •์ฐฝ์—์„œ์ฒ˜๋Ÿผ ๊ฐ„๋‹จํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•  ๋•Œ๋Š” ListView, GridView๋ฅผ ์“ธ ๋•Œ๋„ ์žˆ๋‹ค.

๐Ÿ“–AdapterView

์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•ญ๋ชฉ์„ ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ๋‚˜์—ดํ•˜๊ณ  ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ทฐ

ListView : ํ•ญ๋ชฉ์„ ์ˆ˜์ง์œผ๋กœ ๋‚˜์—ด์‹œํ‚ค๋Š” ๋ฐฉ์‹
GridView : ํ•ญ๋ชฉ์„ ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ๋‚˜์—ด์‹œํ‚ค๋Š” ๋ฐฉ์‹

์–ด๋Œ‘ํ„ฐ ๋ทฐ๋Š” ํ‘œ์‹œํ•  ํ•ญ๋ชฉ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ณ  ์–ด๋Œ‘ํ„ฐ๋ผ๋Š” ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ ๊ณต๊ธ‰๋ฐ›๋Š”๋‹ค.

๋ฐ์ดํ„ฐ ์›๋ณธ์„ ์–ด๋Œ‘ํ„ฐ์—์„œ ๊ฐ€๊ณตํ•ด์„œ ์–ด๋Œ‘ํ„ฐ๋ทฐ๋กœ ๋„˜๊ฒจ์คŒ

๐Ÿ“–Adapter

๋ฐ์ดํ„ฐ ์›๋ณธ๊ณผ ์–ด๋Œ‘ํ„ฐ๋ทฐ ์‚ฌ์ด์˜ ์ค‘๊ณ„ ์—ญํ• 

  • AdapterView๊ฐ€ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•
  1. AdapterView๊ฐ€ Adapter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ๋ฐ์ดํ„ฐ ์›๋ณธ์ด Adapter์— ์„ค์ •๋˜์–ด์•ผ ํ•˜๊ณ , AdapterView์—๋Š” Adapter๊ฐ€ ์„ค์ •๋˜์–ด์•ผ ํ•œ๋‹ค.
  2. getCount() : ํ˜„์žฌ Adapter๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์˜ ์ด ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  3. getView() : ํ™”๋ฉด์— ์‹ค์ œ๋กœ ํ‘œ์‹œํ•  ํ•ญ๋ชฉ๋ทฐ๋ฅผ ์–ป๊ณ  ์ด๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•œ๋‹ค.

AdapterView๋Š” Adapter์— ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜์—ฌ ํ•ญ๋ชฉ๋ทฐ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ์„ ํƒ๋œ ํ•ญ๋ชฉ๋ทฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์–ด๋Œ‘ํ„ฐ ์•ˆ์— ์–ด๋–ค ์‹์œผ๋กœ ํ™”๋ฉด์— ํ‘œ์‹œํ• ์ง€(์™ผ์ชฝ์— ์‚ฌ์ง„์„ ๋„ฃ๊ณ  ์ค‘๊ฐ„์— ๊ธ€์„ ๋„ฃ๊ณ )๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๊ณ  ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ์›๋ณธ์—์„œ ๊ฐ€์ ธ์˜ด
์–ด๋Œ‘ํ„ฐ๋ทฐ๋Š” ์—ฐ๊ฒฐ๋œ ์–ด๋Œ‘ํ„ฐ๋ฅผ ํ†ตํ•ด์„œ 1๋ฒˆ์งธ ํ•ญ๋ชฉ์„ ๊ฐ€์ ธ์™€์ค˜~๋ผ๊ณ  ์š”์ฒญ์„ ํ•จ

๐Ÿ“Adapter ์ข…๋ฅ˜

1) BaseAdapter
2) ArrayAdapter
3) CursorAdapter
4) SimpleAdapter

๐Ÿ“ListView

Adapter๋Š” ๋ฐ์ดํ„ฐ ์›๋ณธ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๊ณ  AdapterView์™€ Adapter๋Š” ์—ฐ๊ฒฐ์ด ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

// ๋ฐ์ดํ„ฐ ์›๋ณธ ์ค€๋น„
val items = arrayOf<String?>("item1", "item2", "item3", "item4", "item5")

//์–ด๋Œ‘ํ„ฐ ์ค€๋น„ (๋ฐฐ์—ด ๊ฐ์ฒด ์ด์šฉ, simple_list_item_1 ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, items)
        
// ์–ด๋Œ‘ํ„ฐ๋ฅผ ListView ๊ฐ์ฒด์— ์—ฐ๊ฒฐ
binding.listView.adapter = adapter

๐Ÿ“GridView

ListView์—์„œ layout๋งŒ ๋ฐ”๋€ ์ƒํƒœ

// ๋ฐ์ดํ„ฐ ์›๋ณธ ์ค€๋น„
val items = arrayOf<String?>("item1", "item2", "item3", "item4", "item5")

//์–ด๋Œ‘ํ„ฐ ์ค€๋น„ (๋ฐฐ์—ด ๊ฐ์ฒด ์ด์šฉ, simple_list_item_1 ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, items)
        
// ์–ด๋Œ‘ํ„ฐ๋ฅผ ListView ๊ฐ์ฒด์— ์—ฐ๊ฒฐ
binding.gridView.adapter = adapter

์ด๋ฏธ์ง€ GridView

profile
๋‚ด๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์“ฐ๋Š” ๋ธ”๋กœ๊ทธ

0๊ฐœ์˜ ๋Œ“๊ธ€