데이터 바인딩 활용

quinones·2024년 6월 21일

오늘은 데이터 바인딩을 리사이클러뷰에 적용시켜보려고 한다.

우선 시작은 똑같다.

gradle

gradle-android안에 아래 내용을 추가해준다.

    dataBinding{
        enable = true
    }

data class

@Parcelize
data class MyItem(
    val user_key: String, //유저키
    val nickname: String, //닉네임
    val r_date: String,  //작성 일시
) : Parcelable

사용할 데이터를 데이터클래스를 사용해서 만들어준다.

layout(item.recyclerview.xml)

나는 리사이클러뷰에 적용시키려고 하니 리사이클러뷰의 item을 만든 xml에서 사용해줄 예정이다. 먼저 최상단 레이아웃을 기본 layout으로 묶어준다.(option + enter로 쉽게 가능)

그 후 data안에 item변수를 만들어준다. 여기서 type은 미리 만들어둔 데이터 클래스의 위치를 넣어준다.

    <data>
        <variable
            name="item"
            type="com.woojin.pickshare.model.MyItem" />
    </data>

그리고 그 아래에서 내가 사용할 부분에 넣어주면되는데 닉네임 부분으로 보자면 text부분에

android:text="@{item.nickname}"

이렇게 넣어주면된다. 이렇게 하면 해당위치에 알아서 데이터가 들어간다.!

api를 이용해서 데이터를 가져오고, 해당 데이터를 adapter안에서 다시 적용시켜주는 작업을 하지않고, xml에서 간단하게 할 수 있다!

어뎁터

기존 어뎁터의 ItemViewHolder에서

tvNickname.text = item.nickname

이렇게 모든 데이터를 하나하나 넣어줬어야했는데 이제는 아래처럼 두줄만 추가해주면 몇개의 데이터가 있더라도 전부다 사용 가능해진다. 여기서 binding.item에서의 item은 xml에서 만들어준 변수의 이름이다.

binding.item = item
binding.executePendingBindings()
profile
이우진

0개의 댓글