
뷰 바인딩(view binding)이란?
안드로이드에서 XML 레이아웃 파일에 정의된 뷰를 손쉽게 참조하기 위한 도구로 기존에는 findViewById() 메서드를 사용하여 레이아웃에서 정의한 뷰에 접근했지만, 뷰 바인딩을 사용하여 레이아웃 파일에서 정의한 각 뷰에 대한 참조를 자동으로 생성해주어 코드에서 간편하게 사용할 수 있도록 한 것입니다.
구글에서는 안드로이드 스튜디오 4.1부터 코틀린 익스텐션이 deprecated 시키고 뷰 바인딩을 사용하도록 안내하고 있다.
https://developer.android.com/topic/libraries/view-binding
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 뷰 바인딩 인스턴스 생성
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
// 뷰에 접근하여 텍스트 설정
binding.myTextView.setText("Hello, View Binding!");
}
안드로이드 스튜디오에 적용하느 방법
안드로이드 스튜디오를 설치하고 뷰 바인딩을 바로 사용할 수 있다면 좋겠지만 아쉽게도 몇가지를 추가해 주어야 한다.
// 안드로이드 스튜디오 3.6 ~ 4.0
android {
...
viewBinding {
enabled true
}
}
// 안드로이드 스튜디오 4.0 이상
android {
...
buildFeatures {
viewBinding = true
}
}
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
}