Android Jetpack

Android View에 대한 접근 - 3 (databinding)

개복치 개발자 2021. 12. 14. 01:05

 자, 이전시간에 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이라는 이름에 걸맞게 데이터를 넣어줘야 하는데, 데이터를 넣어주는 것을 다음글에서 한번 보고 가겠습니다.