RecyclerView - TEAMSTORMERS/STORM_Android GitHub Wiki

BaseAdapter, BaseViewHolder์‚ฌ์šฉ

์ค‘๋ณต์ฝ”๋“œ ํ•ด๊ฒฐ, ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ๊ตฌํ˜„์— ๋Œ€ํ•œ ํ†ต์ผ์„ฑ ๋ถ€์—ฌ

์˜ˆ์ œ ์ฝ”๋“œ

Adapter

class ParticipatedProjectsAdapter () : BaseAdapter<ParticipatedProjectsData>(){

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder<ParticipatedProjectsData> {
        return ParticipatedProjectsViewHolder(parent)
    }
}
  1. BaseAdapter ์ƒ์†
  • ํ•ด๋‹น ์–ด๋Œ‘ํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ œ๋„ค๋ฆญ์œผ๋กœ ์„ ์–ธ
  1. onCreateViewHolder๋ฅผ override
  • ์‚ฌ์šฉํ•  ViewHolder๋ฅผ ๋งŒ๋“ค์–ด ๋ฆฌํ„ดํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋จ
  • onCreateViewHolder ์—์„œ ๋ฐ›์€ parent: ViewGroup๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ์คŒ

ViewHolder

class RoundmeetingViewHolder(parent: ViewGroup) : BaseViewHolder<RoundmeetingData>(R.layout.item_roundmeeting, parent) {
    val ImageView_added_card_roundmeeting = itemView.findViewById<ImageView>(R.id.ImageView_added_card_roundmeeting)

    override fun bind(data : RoundmeetingData){
        Glide.with(itemView).load(data.ImageView_added_card_roundmeeting).into(ImageView_added_card_roundmeeting)
    }
}
  1. BaseViewHolder ์ƒ์†
  • ํ•ด๋‹น ๋ทฐ ํ™€๋”์—์„œ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ œ๋„ค๋ฆญ์œผ๋กœ ์„ ์–ธ
  • ํ•ด๋‹น ๋ทฐ ํ™€๋”์—์„œ ์‚ฌ์šฉํ•  item layout์˜ layoutRes ๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ์คŒ
  • ์ƒ์„ฑ์ž๋กœ ๋ฐ›์€ parent ๋˜ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ์คŒ
  1. bind๋ฅผ override
  • ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์€ data๊ฐ€ ํ•ด๋‹น ๋ทฐ ํ™€๋”์—์„œ ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
  • ํ•˜๋˜๋Œ€๋กœ ๋ฐ”์ธ๋”ฉ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์•กํ‹ฐ๋น„ํ‹ฐ (or ํ”„๋ž˜๊ทธ๋จผํŠธ)์— ์ ์šฉํ•  ๋•Œ

participatedProjectsAdapter = ParticipatedProjectsAdapter()
recycler_participated_projects_list.adapter = participatedProjectsAdapter

ํŒŒ๋ผ๋ฏธํ„ฐ ์—†์ด ์–ด๋Œ‘ํ„ฐ ์„ ์–ธ ๋ฐ ์ ์šฉ

participatedProjectsAdapter.addAll(datas)

๋ฐ์ดํ„ฐ ์ ์šฉ ์‹œ addAll ๋ฉ”์„œ๋“œ๋กœ ๊ฐ„ํŽธ ์‚ฌ์šฉ notify ํ•„์š” ์—†์Œ

์ž์„ธํ•œ ํด๋ž˜์Šค ๋ช…์„ธ๋Š” BaseAdapter, BaseViewHolder ๋ฅผ ์—ด์–ด๋ณด๋ฉด ์ดํ•ด ๊ฐ€๋Šฅํ•จ

์ ์‘ํ•˜๋ฉด ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ 5๋ถ„๋งŒ์— ์ฐ์–ด๋‚ด๋Š” ๊ฒƒ ๊ฐ€๋Šฅ !

โš ๏ธ **GitHub.com Fallback** โš ๏ธ