์ ๋๋ค~!!! ๋ด๊ฐ ํด๋์ด!! .โโธ(โหแหโ)โธโก.
SearchFragment
์์ ์ ์ฅํ ํญ๋ชฉ์ ์ ํํ๋ฉด ์ด๊ฑธ MainActivity
์ SearchData
ํํ์ ๋ฆฌ์คํธ์ ์ ์ฅ์ ํ๊ณ , SaveFragment
์์ recyclerview
์ ํญ๋ชฉ๋ค์ ์์ ์ ํํ๋ ํญ๋ชฉ๋ค๋ก ๊ตฌ์ฑ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ MainActivity์์ ์ ์ฅํ๋ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ธ์ ์ ์ฉ์์ผ์ฃผ๋ฉด ๋๋ค.
api์์ ๊ฐ์ ธ์จ Document ํํ์ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ์ดํฐ ํด๋์ค์ ๋ฃ์ด์ค ๊ฒ์ด๊ธฐ ๋๋ฌธ์
Document
์SearchData
๋ก ๋ฐ์ดํฐ๋ค์ ์ค์ ํด์ฃผ๋ฉด ๋๋ค.
SearchFragment์์ ์ ์ฅํ๊ธฐ ์ํด ์ ํํ ํญ๋ชฉ๋ค์ MainActivity์ ๋ฆฌ์คํธ์ ์ ์ฅ์ ํด์ค์ผํ๋ค. mainActivtiy์ ์ ์ธํ๋ ๋ณ์๋ฅผ ๊ฐ์ ธ์ ์ค์ ํด์ฃผ๋ฉด ๋๋ค. ์ฌ๊ธฐ์ mData๋ SearchData์ด๋ค.
// mainActivity์ ์ค์ ํ๋ ๋ฆฌ์คํธ ๋ณ์
var saveList = mutableListOf<SearchData>()
์ ์ฅ ๋ฒํผ๋ ์ ๋๋๊น ์ ๋๊ฒ ๋ณด๊ดํจ์ ๋๋ ๋๋ฐ.. ์ด? ์ ๊ฐ์ ์ข ๋ฃ๊ฐ..??
adapter๊ฐ ์ค๋ณต ์ค์ ๋์ด ์์ด ๋ฐ์ํ ๋ฌธ์ ๋ผ ํ๋จํด adapter ์ค๋ณต ์ฐ๊ฒฐ ๋ถ๋ถ์ ์์ ํด์ฃผ์๋ค.
?????????????? ๋ญ์ผ ์ ์๋ผ?????
SaveFragment์ mItems์ธ Doument๋ฐ์ดํฐ๋ฅผ ์ด๊ธฐํ ํด์ฃผ์๋ค.
์ฌ๊ธฐ์ ๋ฆฌ์คํธ๋ก ์ด๊ธฐํ ํด์ผ ํ๋ ์ด์ ๋??
SaveAdapter
ํด๋์ค์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋ฆฌ์คํธ์ ํ๋ฉด์ ํ์๋๋ ๋ฐ์ดํฐ ๋ฆฌ์คํธ๊ฐ ์๋ก ๋ค๋ฅธ ํ์์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค. SaveAdapter
์์๋ SearchData
ํ์์ ๋ฐ์ง๋ง, ์ฐ๋ฆฌ๊ฐ ํ๋ฉด์ ํ์ํ๊ธฐ ์ํด์๋ Document
ํ์์ผ๋ก ์ด๊ธฐํํด์ ํ์ํด์ผ ํ๋ค.
์ฆ,
SearchDocument
ํ์์ผ๋ก ์ด๊ธฐํํด ํ๋ฉด์ ํ์ํ๋ ๋ฐ์ดํฐ์SearcData
ํ์์ ๋ฐ์ดํฐ๋ฅผmapping
ํด์ฃผ๋ฉด ๋๋ค.
๋ฆฌ์คํธ ์ด๊ธฐํ ๋ฐฉ์์ ์๋์ฒ๋ผ ๋ ๊ฐ์ง ์ค ํ๋๋ฅผ ์ ํํ๋ฉด ๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฐฉ์์mItems
๋ฆฌ์คํธ๋ฅผ ์ด๊ธฐํ ํด SearchData
๋ฅผ SearchDocument
ํ์์ผ๋ก ๋ณํํ ๊ฐ์ ์ถ๊ฐํด์ฃผ๋ ๊ฒ์ด๋ค.
๋ ๋ฒ์งธ ๋ฐฉ์์ ์์ฑ์์์ Document
๋ก ์ด๊ธฐํํด์ฃผ๊ณ ์ด๋ฅผ addAll
์ ์ด์ฉํด ๊ฐ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
๋ณด๊ธฐ์๋ ์ฐ๊ธฐ์๋ ๊น๋ํ ๋ฐฉ์์ ๋๋ฒ์งธ๋ผ์ ์ฌ์ฉํ ๊ฑฐ๋ฉด ๋ ๋ฒ์ฌ ๋ฐฉ์ ์ถ์ฒ!!!๐
์ด์ ์ ์ ์ฅํ๋ ํญ๋ชฉ์ธ๋ฐ, ๋ณด๊ดํจ์ ๊ฐ๋ค๊ฐ ๋ค์ ๋์์์ ๊ฒ์์ ๋๋ฅธ ํ ์ด๋ฏธ ์ ์ฅํ๋ ํญ๋ชฉ์ ์ ์ฅ์ ๋ค์ ๋๋ฅผ๊ฒฝ์ฐ, ๋ณด๊ดํจ์๋ ์ด๋ฏธ ๋์ผํ ํญ๋ชฉ์ด ์ ์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ณ๋์ด ์์ด์ผ ํ์ง๋ง, ๋ค์ ๋๋ฅด๋ฉด ๋ณด๊ดํจ์ ๋์ผํ ํญ๋ชฉ์ด ํ๋ ๋ ์ ์ฅ์ด ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
MainActivity
์ ์ ํํ ํญ๋ชฉ์ ์ ์ฅ ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋๋ก ์กฐ๊ฑด์ ๊ฑธ์๋๋ฐ, ์ ๋๋ก ์๋ํ์ง ์๋ ๊ฒ์ผ๋ก ๋ณด์ ์ค๋ณต์ฒดํฌ๋ฅผ ๊ฐํํด์ฃผ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ ์์ ๊ธฐ์กด ์ฝ๋์์ ์ถ๊ฐ๋ก ๊ฐํํด์ฃผ๋ ์ฝ๋๋ก ์์ ํด์ฃผ์๋ค.
saveList
์์ ํด๋น ํญ๋ชฉ์url
์ด ์กด์ฌํ๋์ง ํ์ธํ๊ณ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ์๋ง ํญ๋ชฉ์saveList
์ ์ถ๊ฐํด์ค๋ค.
๊ทธ๋ฌ๋ฉด ์ด๋ ๊ฒ ์ง์! ๊ธฐ์กด์ ์ถ๊ฐํ๋ ํญ๋ชฉ์ ๋ค์ ๋๋ฌ๋ ์ถ๊ฐ๋ก ์ ์ฅ๋์ง ์๋๋ค!
์ ์ฅ ์ทจ์ ์ ๊ฐ์ฅ ๋ง์ง๋ง์ ์ ์ฅํ๋ ํญ๋ชฉ์ด ํ๋ ๋ ์๊ธฐ๋ฉด์ ๊ฒฐ๊ตญ ์ ์ฅ ์ทจ์ ์ ์ ๊ฐฏ์์ ์ทจ์ ํ์ ๊ฐฏ์๊ฐ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
ํ๋ฉด์ ํ์ํ ๋๋ SearchDocument
๋ฅผ ์ฌ์ฉํด์ผ ํ์ง๋ง ํ์ฌ ์ฝ๋์์ ์ ๊ฑฐ๋๋ ๊ฒ์ SearchData
๋ฆฌ์คํธ๋ฅผ ์ ๊ฑฐํ๊ณ ์๋ค. mItems
๋ฆฌ์คํธ์ mData
๋ฆฌ์คํธ์ ํฌ๊ธฐ๊ฐ ์ผ์นํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด, mData
๋ฆฌ์คํธ์ mItems
๋ฆฌ์คํธ์ ํฌ๊ธฐ๊ฐ ๊ฐ๊ฐ 4
์ธ ์ํ์์ ๋ง์ง๋ง ํญ๋ชฉ์ ์ ๊ฑฐํ๋ฉด mData ๋ฆฌ์คํธ๋ 3๊ฐ์ ํญ๋ชฉ์ ๊ฐ์ง๊ฒ ๋๊ณ , notifyItemRemoved(position)
์ด ํธ์ถ๋์ด RecyclerView
์์๋ ๋ง์ง๋ง ํญ๋ชฉ์ด ์ ๊ฑฐ๋์ง๋ง, mItems
๋ฆฌ์คํธ๋ ์ฌ์ ํ 4
๊ฐ์ ํญ๋ชฉ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ฆ,
removeAt
ํจ์๋ฅผ ์ด์ฉํด์mData
์mItems
์ ๋ฆฌ์คํธ์ ํด๋น ํญ๋ชฉ์ ์ ๊ฑฐํด์ฃผ๋ฉด ๋๋ค.
๊ฒ์์ด๋ฅผ ์
๋ ฅํ๊ณ ๊ฒ์๋ฒํผ์ ๋๋ฅด๋ฉด ํค๋ณด๋๊ฐ ๊ทธ๋๋ก ์กด์ฌํด ๋ณด๊ธฐ ๋ถํธํ๋ค๊ณ ๋๊ผ๋ค.
๊ทธ๋์ ์ด๋ ๊ฒ ๊ฒ์๋ฒํผ์ ๋๋ฅด๋ฉด ํค๋ณด๋๊ฐ ์ฌ๋ผ์ง๋๋ก hideKeyboard ํจ์๋ฅผ ํ๋ ๋ง๋ค์๊ณ ์ด๋ฅผ ๋ฒํผ์ ๋๋ ์ ๋ ์ฒ๋ฆฌ๋๋๋ก ์ ์ฉํด์ฃผ์๋ค.
ํ์คํ ์ด๊ฒ ํจ์ฌ ๋ณด๊ธฐ ํธํ๋ฏ!!!!
๊ฒ์์ฐฝ์ ์
๋ ฅ ํ๊ณ ์ถํ ๊ฒ์ ์ฐฝ์ ์ ํํ๋ฉด ์ด์ ์ ์
๋ ฅํ๋ ํ
์คํธ๊ฐ ์ ๊ฑฐ๋๋๋ก ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ฃผ์๋ค.