๐Ÿ…ฐ๏ธ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ - 3

kkominยท2023๋…„ 9์›” 21์ผ
0

Android Studio

๋ชฉ๋ก ๋ณด๊ธฐ
33/44
post-thumbnail

API๊ฐ€ ์ œ์ผ ์–ด๋ ค์šด ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ๋Š๊ผˆ๋Š”๋ฐ ์‚ฌ์‹ค์ƒ ์ข‹์•„์š” ๊ธฐ๋Šฅ์ด ํ›จ์”ฌ ํ—ท๊ฐˆ๋ฆฐ๋‹ค... (เฒฅโŒฃเฒฅ)


๊ฒ€์ƒ‰์–ด ์ €์žฅ

๋งˆ์ง€๋ง‰์œผ๋กœ ์ž…๋ ฅํ–ˆ๋˜ ๊ฒ€์ƒ‰์–ด๋ฅผ SharedPreference๋ฅผ ์ด์šฉํ•ด์„œ ์ €์žฅํ•ด ์•ฑ์„ ์žฌ์‹œ์ž‘ํ•ด๋„ ๊ฒ€์ƒ‰์–ด๊ฐ€ ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋˜์–ด์žˆ๋„๋ก ์„ค์ •ํ•ด์ค€๋‹ค.

MainActivity

SharePreference๋ฅผ ์ด์šฉํ•ด ์ €์žฅ ๋ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๊ธฐ๋Šฅ์„ ์œ„ํ•œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

SearchFragment

mainActivity๋ฅผ ๋”ฐ๋กœ ์ƒ์ˆ˜์ธ main์œผ๋กœ ์„ ์–ธํ•ด์ค€๋‹ค.

private val main by lazy { activity as MainActivity }

๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ๊ณต๋ฐฑ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— trim์„ ์ด์šฉํ•ด ๊ณต๋ฐฑ์„ ์ œ์™ธํ•œ ์ž…๋ ฅ๊ฐ’์„ SharedPreference์— ์ €์žฅํ•ด์ค€๋‹ค. ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ํ†ตํ•ด ๊ณต๋ฐฑ์„ ์ œ์™ธํ•œ ์ž…๋ ฅ๊ฐ’์˜ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™€ ํ™”๋ฉด์— ํ‘œ์‹œํ•ด์ค€๋‹ค.

์ €์žฅํ•œ ๊ฒ€์ƒ‰์–ด๋Š” fragment๊ฐ€ ์ฒ˜์Œ ์‹œ์ž‘๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” onCreateView์— ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๊ธฐ๋Šฅ์œผ๋กœ ์ €์žฅํ–ˆ๋˜ ๊ฒ€์ƒ‰์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด ๋œ๋‹ค.

main.loadData(binding.searchEditText)

์ข‹์•„์š” ๊ธฐ๋Šฅ

๋งˆ์Œ์— ๋“œ๋Š” ์ด๋ฏธ์ง€์˜ ์ €์žฅ์„ ์œ„ํ•ด ์ฑ…๊ฐˆํ”ผ์˜ ์ด๋ฏธ์ง€ ๋ฒ„ํŠผ์„ ์„ ํƒํ•˜๋ฉด ์ฑ…๊ฐˆํ”ผ๊ฐ€ ์ฑ„์›Œ์ง€๋Š” ์ด๋ฏธ์ง€๋กœ ๋ณ€๊ฒฝ๋˜๊ณ  ์ €์žฅ๋œ ์ด๋ฏธ์ง€๋Š” ๋”ฐ๋กœ ๋ณด๊ด€ํ•จ์—์„œ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์ค„ ์˜ˆ์ •์ด๋‹ค.

๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹

MainActivity์˜ frameLayout์„ ํ†ตํ•ด ๋‘ ๊ฐ€์ง€์˜ fragment๊ฐ€ ์กด์žฌํ•˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— searchFragment์—์„œ ์ข‹์•„์š” ๊ธฐ๋Šฅ ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ์–ธํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, MainActivity ์— ์ข‹์•„์š” ๊ธฐ๋Šฅ ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ์–ธํ•œ๋‹ค.

searchFragment์—์„œ๋Š” ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒํ•œ ํ•ญ๋ชฉ๋“ค์˜ ์ •๋ณด๋ฅผ UserData์ธ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค์— ๋”ฐ๋กœ ์ €์žฅ์„ ํ•ด์ฃผ๊ณ  SaveFragment์—์„œ๋Š” UserData์— ์ €์žฅ๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์™€ recyclerview์— ์ ์šฉํ•ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.


SearchData

์ข‹์•„์š”(์ €์žฅ) ๊ธฐ๋Šฅ์˜ ์—ฌ๋ถ€๋Š” SearchData์˜ isSave๋ฅผ ๊ฐ€์ง€๊ณ  ํŒ๋ณ„ํ•ด์ค€๋‹ค.


MainActivity

์ €์žฅํ•œ ํ•ญ๋ชฉ์„ SearchData ํ˜•์‹์˜ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

ํ•œ ๋ฒˆ ์ €์žฅ๋œ ํ•ญ๋ชฉ์€ ๋ณต์ˆ˜๋กœ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ์ŠคํŠธ์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ•ญ๋ชฉ์ผ ๊ฒฝ์šฐ์—๋งŒ ์ €์žฅ์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.


SearchAdapter

SearchAdapter์—์„œ ์„ ํƒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ SearchData ํ˜•ํƒœ์˜ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ €์žฅ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์ €์žฅ ์ด๋ฏธ์ง€๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ณ , isSave๊ฐ€ false์ด๋ฉด ์„ ํƒ๋œ ํ•ญ๋ชฉ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅ์ด ๋˜๊ณ , isSave๊ฐ€ true์ด๋ฉด ์ด๋ฏธ ์„ ํƒ๋œ ํ•ญ๋ชฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅํ•œ ๋ฆฌ์ŠคํŠธ์—์„œ ์ œ๊ฑฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค.


SaveFragment

SearchData ํ˜•ํƒœ์˜ saveList๋ฅผ MainActivity์˜ saveList๋กœ ์„ค์ •ํ•ด์ฃผ๊ณ , SaveAdapter์˜ mData์— savedList๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ , SaveAdapter์„ ์—ฐ๊ฒฐํ•œ ๋’ค, layoutManager๊นŒ์ง€ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.


SaveAdapter

SearchAdapter๊ณผ ๋™์ผํ•˜์ง€๋งŒ bookmark์‹œ์˜ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ๋ถ€๋ถ„์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ฝ”๋“œ๋ฅผ ๋™์ผํ•˜๊ฒŒ ๊ตฌ์„ฑํ–ˆ๋‹ค.


์‹คํ–‰ํ™”๋ฉด

๋ญ”๊ฐ€ ๋‹ค ๋œ๊ฑฐ ๊ฐ™์€๋ฐ ์ด์ƒํ•˜๊ฒŒ ๋ณด๊ด€ํ•จ์—์„œ ์ €์žฅํ•œ ํ•ญ๋ชฉ๋“ค์ด ์•ˆ๋ณด์ธ๋‹ค..? recyclerview๊ฐ€ ๋น„์–ด์žˆ๋Š”...????ํ•˜ใ… ใ…  ๋‚ด์ผ ์ถ”๊ฐ€๋กœ ์ˆ˜์ •ํ•ด๋ณด์ž.

profile
์†Œ์†Œํ•œ ์ฝ”๋”ฉ ์ผ๊ธฐ

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