hmk run dev

RecycleView 본문

android

RecycleView

hmk run dev 2022. 2. 6. 17:21

요즘엔 List가 없는 앱을 찾기 힘들다.

 

배민 - 음식점 list

야놀자 - 숙박 list

핀다 - 대출 list

 

이렇듯 거의 모든 어플엔 list 형식이 있는데

 

RecycleView말 그대로 재활용이 된다는 것이다.

 

화면에 보여질 만큼의 view를 생성하고 계속 재활용한다.

 

RecycleView를 사용하기 위한 준비물이 2개가 필요하다.

 

1. Adapter

- view 생성 만든 view 안에서 데이터 바인딩 담당

class MyAdapter(val context: Context,
                val list : List<MemoEntity>,
                var onDeleteListner: OnDeleteListner) : RecyclerView.Adapter<MyAdapter.MyViewHoler>() {

    // 리스트 사이즈
    override fun getItemCount(): Int {
        return list.size
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHoler {
        val itemView = LayoutInflater.from(context).inflate(R.layout.item_memo, parent, false)

        return  MyViewHoler(itemView)
    }

    // 틀을 만든 것과 리스트안에 내용을 합쳐준다
    override fun onBindViewHolder(holder: MyViewHoler, position: Int) {
        // list = 1,2,3
        val memo = list[position]

        holder.memo.text = memo.memo
        // 꾹 ~ 누르면 delete
        holder.root.setOnLongClickListener(object : View.OnLongClickListener{
            override fun onLongClick(p0: View?): Boolean {
                onDeleteListner.onDeleteListner(memo)
                return true
            }
        })
    }

    inner class MyViewHoler (itemView : View) : RecyclerView.ViewHolder (itemView) {

        val memo = itemView.textview_memo
        val root = itemView.root
    }


}

 

2. Layout Manager

- recycleView 내부에서 어떻게 아이템을 보여줄지 결정함(grid, horizontal, vertical)

 

 

'android' 카테고리의 다른 글

안드로이드 INTENT란?  (0) 2022.02.12
앱과 Firebase  (0) 2022.02.06
안드로이드 Activity 라이프 사이클  (0) 2022.02.06
안드로이드 데이터 관리 ROOM  (0) 2022.02.06
안드로이드 앱 Constraint Layout  (0) 2022.02.06
Comments