-
Notifications
You must be signed in to change notification settings - Fork 1
RecyclerView
KIM SEONG GYU edited this page Jul 6, 2020
·
1 revision
중복코드 해결, 리사이클러뷰 구현에 대한 통일성 부여
class ParticipatedProjectsAdapter () : BaseAdapter<ParticipatedProjectsData>(){
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder<ParticipatedProjectsData> {
return ParticipatedProjectsViewHolder(parent)
}
}
BaseAdapter
상속
- 해당 어댑터에서 사용할 데이터 모델을 제네릭으로 선언
onCreateViewHolder
를 override
- 사용할
ViewHolder
를 만들어 리턴하기만 하면 됨onCreateViewHolder
에서 받은parent: ViewGroup
를 파라미터로 넘겨줌
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)
}
}
BaseViewHolder
상속
- 해당 뷰 홀더에서 사용할 데이터 모델을 제네릭으로 선언
- 해당 뷰 홀더에서 사용할 item layout의 layoutRes 를 파라미터로 넘겨줌
- 생성자로 받은 parent 또한 파라미터로 넘겨줌
bind
를 override
- 매개변수로 받은
data
가 해당 뷰 홀더에서 사용될 데이터 모델- 하던대로 바인딩 해주면 된다.
participatedProjectsAdapter = ParticipatedProjectsAdapter()
recycler_participated_projects_list.adapter = participatedProjectsAdapter
파라미터 없이 어댑터 선언 및 적용
participatedProjectsAdapter.addAll(datas)
데이터 적용 시 addAll 메서드로 간편 사용 notify 필요 없음
자세한 클래스 명세는 BaseAdapter, BaseViewHolder 를 열어보면 이해 가능함
적응하면 리사이클러뷰 5분만에 찍어내는 것 가능 !