저번 포스팅에서 item layout과 data class를 만들었숴요
제 설명이 도무지 이해할 수가 없다면 그냥 이미지만 보시면 되지만ㄴ,, 그래도 읽어주세요!~!!!!~!~!!!
지난 포스팅에서 recyclerView 준비물이라고 했던!
- item layout
- data class
- adapter <--이번 포스팅에서 진행할 단계
- recyclerView를 띄울 activity 또는 fragment
2번까지 했으니까 3번가겠습니다
3번.
자자 밑바탕을 깔겠습니다.
AnimalAdapter를 만들었습니다
근데 Adapter가 뭐하는 놈이냐
리사이클러 뷰와 데이터를 매핑해주는 중간다리 라고 생각하심 될것같습니다
override 된 저 메서드들의 역할이 뭔지 궁금합니다
크흠
먼저 onCreateViewHolder란 무엇이냐
메서드 명 그대로 ViewHolder를 생성해줍니다.
그렇담 ViewHolder가 당최 뭔지!!
ViewHolder는 View를 보관하는 Holder의 객체입니다 여기서 View는 아까 그 아이템 항목 한개!
onCreateViewHolder를 아래처럼 구현해줍니다
저희가 만든 layout을 뷰 객체로 생성해주고 ViewHolder에 담아서 반환합니다
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.recyclerview,parent,false)
return ViewHolder(view)
}
이제 getItemCount() 메서드의 소스를 채워야합니다
저번 포스팅에서 만든 AnimalData 클래스를 MutableList 형으로 반환할 변수를 하나 생성해주세요
저는 animalData로 가겠습니당
그 후 getItemCount() 에서 animalData.size를 return해주십시다
자자 마지막 onBindViewHolder() 메서드를 통해 레이아웃에 AnimalData를 바인딩 하겠습니다
layout의 animal_name 텍스트뷰와 animal_index 텍스트 뷰를 각각 name, index 이름을 가진 변수로 객체화해주고
데이터를 바인딩해줍니다.
name.text = animalData[position].animalName
index.text = animalData[position].animalIndex
animalData 리스트의 데이터를 순차적으로 매핑하겠다!
그렇다면 onBindViewHolder 메서드는 데이터가 들어있는 리스트의 size만큼 호출되겠네요
오케의!
[AnimalAdapter 전체소스]
class AnimalAdapter() : RecyclerView.Adapter<AnimalAdapter.ViewHolder>() {
lateinit var animalData : MutableList<AnimalData>
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.recyclerview,parent,false)
return ViewHolder(view)
}
override fun getItemCount(): Int {
return animalData.size
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val name : TextView = holder.itemView.findViewById(R.id.animal_name)
val index : TextView = holder.itemView.findViewById(R.id.animal_index)
name.text = animalData[position].animalName
index.text = animalData[position].animalIndex
}
inner class ViewHolder(view : View) : RecyclerView.ViewHolder(view){
}
}
다음 포스팅에서 마무리 짓겠습니당
----------------------------------------------------------------------------------------------------------------------
🎃🐥🎃🐥🎃간단하게 RecyclerView 생성하기 프로젝트
https://jpointofviewntoe.tistory.com/67
https://jpointofviewntoe.tistory.com/68
https://jpointofviewntoe.tistory.com/69
'개발노트 > Android' 카테고리의 다른 글
Android : launchMode - Activity를 시작하는 방법 (0) | 2022.05.13 |
---|---|
android : 간단하게 RecyclerView 생성하기[3] (0) | 2022.05.07 |
android : 간단하게 RecyclerView 생성하기[1] (0) | 2022.05.05 |
kotlin : Fragment 생성하기 [2] (0) | 2022.05.04 |
kotlin : Fragment 생성하기 [1] (0) | 2022.05.03 |
댓글