자, 이전시간에 ViewBinding까지 봤습니다.
이번에는 DataBinding을 살펴보도록 하겠습니다.
ViewBinding과 마찬가지로, findViewById를 대체해서 쉽게 View에 접근할 수 있는데, 약간 좀 더 귀찮은 작업이 있습니다. 하지만, 여러 기능들도 있으니 한번 잘 살펴보시면 좋을 것 같습니다.
일단 어떻게 사용하는지부터 간단하게 한번 보겠습니다.
Activity에서 사용법
viewbinding에서와 마찬가지로 gradle에서 databinding을 선언해줍니다.
그 다음 Activity에서 사용 방법을 한번 알아보겠습니다.
ViewBinding과는 조금 방법이 다른데 xml파일을 조금 수정해주는 부분이 있습니다.
일단 xml을 파일을 보면 위 아래로 <layout></layout> 이라는 태그로 감싸져 있습니다.
그리고 Activity에서 아래와 같은 코드를 작성해서 접근해줍니다.
private lateinit var binding : ActivityMainBinding
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
전체 코드를 본다면 아래와 같습니다.
아래와 같이 데이터바인딩을 통해서 View에 접근해줄 수 있습니다.
그렇다면, Fragment에서는 어떻게 사용해줄 수 있을까요?
Fragment에서 사용법
예제를 위해 BlackFragment를 만들어줬습니다.
그 다음 Fragment xml파일에도 마찬가지로 <layout></layout> 태그로 감싸줍니다.
그 다음, Fragment 파일에는 아래와 같이 코드를 추가해줍니다.
lateinit var binding : FragmentBlankBinding
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_blank, container, false)
완성된 코드는 아래와 같습니다.
이렇게 DataBinding을 이용해서 View에 접근해줄 수 있습니다.
다만, 여기까지 하면, 단순히 View에 접근하는 것 외에는 다른 기능을 하지 않습니다.
DataBinding이라는 이름에 걸맞게 데이터를 넣어줘야 하는데, 데이터를 넣어주는 것을 다음글에서 한번 보고 가겠습니다.
'Android Jetpack' 카테고리의 다른 글
Android ViewModel - 2 (Activity ViewModel) (0) | 2021.12.18 |
---|---|
Android ViewModel - 1 (ViewModel의 필요성) (0) | 2021.12.18 |
Android View에 대한 접근 - 4 (Databinding with DataClass) (0) | 2021.12.15 |
Android View에 대한 접근 - 2 (ViewBinding) (0) | 2021.12.11 |
Android View에 대한 접근 - 1 (findViewById, Kotlin Extensions) (0) | 2021.12.11 |