728x90
๋ฆฌ์คํธ๋ทฐ(ListView)๋?
- ๋ฆฌ์คํธ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์ ฏ์ด๋ค.
- ์ฝํ๋ฆฐ ํ์ผ์์ ๋ฆฌ์คํธ ์์ ๋ด๊ฒจ์๋ ๊ฐ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ Adapter๋ฅผ ํตํด xmlํ์ผ์ ListView์ ๊ฐ๊ฐ์ ์์ดํ
์ ๋ฃ์ด์ค๋ค.
- Adapter๋ ๋ฆฌ์คํธ์ ๋ฐ์ดํฐ๋ค๊ณผ ListView์ ์์ดํ ์ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ๊ฐ์ฒด๋ค.
- LilstView์์ ์์ดํ ์ ListView์ ํญ๋ชฉ์ ๋งํ๋ค.
์ด๋ํฐ๋ฅผ ํตํด ๋ฐ์ดํฐ์ ListView๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ (๊ฐ๋จ์์ฝ)
- MainActivity์ ์๋ ๋ฆฌ์คํธ์ ๋ฐ์ดํฐ๋ค์ ์ด๋ํฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ธ๋ค. ์์๋ก a, b, c๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ธ๋ค๊ณ ํ์.
- ์ด๋ํฐ๊ฐ listview_item.xml์ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๋ฃ๋๋ค.
- listview_item.xml์ activity_main.xml์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ค๋ค.
๋ค์์ ๋ฐฉ๋ฒ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ด์ ๋ฆฌ์คํธ๋ฅผ ๋ฆฌ์คํธ๋ทฐ๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ด๋ค.
// ๋ฆฌ์คํธ์ ๋ด์ ๋ฐ์ดํฐ ๋ชจ๋ธ
package com.hyein.listview_ex
data class ListViewModel (
var title : String = "",
var content : String = ""
)
0. activity_main.xml์ ListView ์์ฑํ๊ธฐ
1. listView_item.xml ๋ง๋ค๊ธฐ
- listView_item.xml ํ์ผ์ ์๋ก ์์ฑํ๋ค.
- ๊ธฐ๋ณธ ์ค์ ๊ฐ์ผ๋ก ๋์ด์๋ ๋ ์ด์์์ LinearLayout์ผ๋ก ๋ฐ๊พผ๋ค.
- ์์ ํธ์์ LinearLayout์ผ๋ก ์ค์ ํ๊ฑฐ์ง ์ํ๋ ๋ ์ด์์์ด ๋ฐ๋ก ์๋ค๋ฉด ๊ทธ๊ฑธ๋ก ์ค์ ํด๋ ๋๋ค.
- LinearLayout์์ TextView๋ฅผ ์์ฑํ๋ค. ์ด TextView๋ ๋ฆฌ์คํธ๋ทฐ์ ์์ดํ ์ด๋ค.
- ์ด ์์ดํ ์ ์ด๋ํฐ์ ์ฐ๊ฒฐํด ์ค๊ฒ์ด๋ค.
2. Adapter ๋ง๋ค๊ธฐ & 1์์ ๋ง๋ ์์ดํ ์ Adapter์ ๋ฃ๊ธฐ
- ListViewAdapter.kt ํ์ผ์ ์๋ก ์์ฑํ๋ค. xml ํ์ผ๊ณผ ๊ฐ์ด ๋ง๋ค์ง ์๊ณ ์ฝํ๋ฆฐ ํ์ผ๋ง ๋ง๋ ๋ค.
- ๋ฆฌ์คํธ๋ฅผ ์์ฑ์๋ก ๋ฐ๊ณ , BaseAdapter()๋ฅผ ์์๋ฐ๋๋ค.
- class ListViewAdapter์ ๋นจ๊ฐ์ค์ด ๋ฐํ ๋ฐ ๋งฅ์ด๋ผ๋ฉด ์ต์ +์ํฐ, ์๋์ฐ๋ผ๋ฉด ์ํธ+์ํฐ๋ฅผ ๋๋ฌ์ Implement Members์ ํ์ํ ๋ฉค๋ฒ๋ค์ ๋ชจ๋ ์๋์ผ๋ก ๋ฃ๋๋ค.
- getCount()๋ ์์ฑ์๋ก ๋ฐ์ ๋ฆฌ์คํธ์ ํฌ๊ธฐ๋ฅผ ๋ฐํํ๋๋ก ํ๋ค.
- Count๋ ๋ฆฌ์คํธ ๋ทฐ์ ๊ฐ์ ์ฆ, ์์ดํ ๋ค์ ๊ฐ์๋ค. ์์ดํ ์ ๊ฐ์๋ ๋ฆฌ์คํธ์ ํฌ๊ธฐ๋งํผ ๋ฐ๊ฒ ๋ค๋ ์๋ฏธ๋ก ๋ฆฌ์คํธ์ ํฌ๊ธฐ๋งํผ์ ๋ฐํํ๋ค.
- getItem()์ ์์ฑ์๋ก ๋ฐ์ ๋ฆฌ์คํธ์ ์์ดํ ๋ค์ ๋ฐํํ๋๋ก ํ๋ค.
- getItemId()๋ ํฌ์ง์
์ ๋ฐํํ๋๋ก ํ๋ค.
- p0์ position์ ์๋ฏธํ๋ค.
- 4 ~ 6 ๊ณผ์ ์ ๋ฌธ๋ฒ์ฒ๋ผ ์ธ์ด๋๋ฉด ํธ๋ฆฌํ๋ค.
- getView()์์ ์ด๋ํฐ์์ ๋์ด์จ ๋ฐ์ดํฐ๋ค์ listview_item.xml์ ํ๋ํ๋ ๋ฃ์ด์ฃผ๋ ์ฐ๊ฒฐ์์
์ ํ ๊ฒ์ด๋ค.
- convertView ๋ณ์๋ฅผ ๋ง๋ค๊ณ ๊ทธ ๋ณ์์ p1์ ๋ด๋๋ค.
- p0์ position, p1์ convierView, p2๋ parent๋ฅผ ์๋ฏธํ๋ค.
- ๋ง์ฝ convertView๊ฐ ๋น์ด์๋ค๋ฉด listView_item.xml์ ์๋ ์์ดํ ์ ์ง์ ๊ฐ์ ธ์จ๋ค.
- convertView๋ฅผ ๋ฐํํ๋ค.
- convertView ๋ณ์๋ฅผ ๋ง๋ค๊ณ ๊ทธ ๋ณ์์ p1์ ๋ด๋๋ค.
3. MainActivity.kt์์ ์ด๋ํฐ๋ก ๋ฐ์ดํฐ ๋ฃ๊ธฐ
- ์ด๋ํฐ์ ๋ฃ์ ๋ฆฌ์คํธ๋ฅผ ํ๋ ์๋ก ๋ง๋ค๊ณ ๋ฆฌ์คํธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋๋ค.
- listAdapter๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ListViewAdpater()๋ฅผ ๋ฃ์ด์ค๋ค.
- ListVIewAdapter์ ๋งค๊ฐ๋ณ์๋ก 1์์ ๋ง๋ ๋ฆฌ์คํธ๋ฅผ ๋ฃ์ด์ค๋ค.
4. listView_item.xml์ ์์ดํ ์ activity_main.xml์ ์๋ listVIew์ ์ฐ๊ฒฐ์ํค๊ธฐ
- MainActivity.kt์์ listview ๋ณ์๋ฅผ ์๋ก ์์ฑํ๊ณ , activity_main.xml์ ์๋ ListView๋ฅผ ๊ฐ์ ธ์จ๋ค.
- listview์ ์ด๋ํฐ์ listAdapter๋ฅผ ๋ฃ์ด์ค๋ค.
(3๊ณผ์ ์ ๊ทธ๋ฆผ์๋ฃ์ ์ฝ๋ ์ฐธ๊ณ )
5. ์ด๋ํฐ์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์ดํ ์ ๋ฃ์ด์ ๋ฆฌ์คํธ๋ทฐ์ ๋์ค๊ฒ ํ๊ธฐ
- ListViewAdapter.kt์ ํด๋์ค์์ ์์ฑ์๋ก ๋ฐ์ ๋ฆฌ์คํธ๋ MainActivity.kt์์ ๋ง๋ ๋ฆฌ์คํธ ์ด๋ค.
- ์ด ๋ฆฌ์คํธ ๋ฐ์ดํฐ๋ฅผ listview.xml์ ์์ดํ ์ ๋ฃ์ด์ผ ํ๋ค.
- ๋ณ์๋ฅผ ์๋ก ์์ฑํ์ฌ listview_item.xml์ TextView ์์๋ฅผ ๋ถ๋ฌ์ ๋ด๋๋ค.
- ์ด ๋ณ์๋ค(TextView ๋ด์ ๋ณ์)์ ๋ฆฌ์คํธ์ ์๋ ๊ฐ๊ฐ์ ๋ฐ์ดํฐ๋ค๊ณผ ์ฐ๊ฒฐํด์ค๋ค.
๋ฆฌ์คํธ ๋ฐ์ดํฐ์ ํ๋ฆ
728x90
'์๋๋ก์ด๋๐ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋๋ก์ด๋] ๋ค๋ก๊ฐ๊ธฐ ๋๋ฒ ํด๋ฆญ์ ์ข ๋ฃํ๋ ๋ฐฉ๋ฒ (0) | 2024.07.18 |
---|---|
[์๋๋ก์ด๋] ๋ก๊ทธ (0) | 2024.07.18 |
[์๋๋ก์ด๋] ์ปค์คํ ํฐํธ ์ ์ฉ ๋ฐฉ๋ฒ (0) | 2024.07.18 |
[์๋๋ก์ด๋] ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ (0) | 2024.07.17 |
[์๋๋ก์ด๋] ํ๋ฉด๊ฐ ๋ฐ์ดํฐ ์ ๋ฌํ๊ธฐ (0) | 2024.07.12 |