안드로이드 앱 개발에서 뷰 요소를 코드에서 찾는 데 사용되는 두 가지 다른 접근 방식이 있는데, findViewById
와 View Binding
이 있다.
// 뷰 바인딩 활성화
val binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
// 뷰 요소에 접근
binding.buttonId.setOnClickListener {
// 버튼 클릭 시 동작
}
findViewById
에 비해 더 간결하고 가독성이 좋은 코드를 작성할 수 있음val button = findViewById<Button>(R.id.buttonId)
button.setOnClickListener {
// 버튼 클릭 시 동작
}
뷰 바인딩을 사용하려면 build.gradle.kts(Module :app)
파일도 설정도 해야 한다!!
android{
...
// AndroidStudio 3.6 ~ 4.0
viewBinding{
enabled = true
}
// AndroidStudio 4.0 ~
buildFeatures{
viewBinding = true
}
}
xml과 연결되는 바인딩 클래스가 자동으로 생성되며 그 클래스의 멤버로 xml의 ID를 가진 모든 뷰를 참조하는 참조 변수가 있다.
바인딩 클래스는 정해진 명명 규칙에 따라서 만들어진다!
ex.
activity_main.xml
→ActivityMainBinding
fragment_first.xml
→FragmentFirstBinding
recycler_item.xml
→RecyclerItemBinding
[참고 사이트]