본문 바로가기
개발노트/Android

android : 간단하게 RecyclerView 생성하기[2]

by 전지적진영시점 2022. 5. 6.
반응형

저번 포스팅에서 item layout과 data class를 만들었숴요

 

제 설명이 도무지 이해할 수가 없다면 그냥 이미지만 보시면 되지만ㄴ,, 그래도 읽어주세요!~!!!!~!~!!!

 

 

지난 포스팅에서 recyclerView 준비물이라고 했던! 

 

  1. item layout
  2. data class
  3. adapter <--이번 포스팅에서 진행할 단계
  4. 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

 

android : 간단하게 RecyclerView 생성하기[1]

이번 포스팅은 ! 뭐냐면 recyclerview를 어떻게 만드는지에 대해 쓸거다 나 앱 가르쳐 주신 분이 안드로이드 개발자는 리사이클러 뷰만 자유자재로 만들 줄 알면 끝이라고 했다 먼저 recyclerView를 만

jpointofviewntoe.tistory.com

https://jpointofviewntoe.tistory.com/68

 

android : 간단하게 RecyclerView 생성하기[2]

저번 포스팅에서 item layout과 data class를 만들었숴요 제 설명이 도무지 이해할 수가 없다면 그냥 이미지만 보시면 되지만ㄴ,, 그래도 읽어주세요!~!!!!~!~!!! 지난 포스팅에서 recyclerView 준비물이라고

jpointofviewntoe.tistory.com

 

https://jpointofviewntoe.tistory.com/69

 

android : 간단하게 RecyclerView 생성하기[3]

🎃 recyclerView의 마지막 포스팅 ! item layout data class adapter recyclerView를 띄울 activity 또는 fragment adapter 생성까지 끝났으니 이제 MainActivity에 띄워야즤~~~~~ MainActivity에 RecyclerView를..

jpointofviewntoe.tistory.com

 

 

반응형

댓글