class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding //npe때문에 컴파일 시점에 에러를 내주려고
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//xml 내 text를 메모리에 하나씩 view 객체로 만들어줌, 처음 만들어지는 과정 인플레이션이라함
binding = ActivityMainBinding.inflate(layoutInflater) //인플레이션: 통합, 팽창
//setContentView(R.layout.activity_main)
setContentView(binding.root)
binding.txtHello.text = "View Binding"
}
}
//build.gradle(app)
android {
viewBinding {
enabled = true
}
}
//activity_main.xml
<TextView
android:id="@+id/txtHello"
/>
- 뷰 바인딩(view binding) 안드로이드 아키텍처 구성요소로서 앱 모듈별로 설정하여 사용할 수 있는 기능
- 뷰 바인딩 기능을 사용하면 뷰를 제어하는 코드를 쉽게 작성할 수 있음
- 레이아웃 xml 파일과 연결되는 바인딩 클래스가 자동으로 설계되어 만들어지고 그 클래스의 멤버로서 레이아웃 xml에 id가 있는 모든 뷰를 참조하는 참조변수가 포함되어 있음
- 별도의 findViewById()를 하지 않아도 이 바인딩 클래스의 객체(인스턴스)안에 모든 뷰들의 참조변수가 만들어져 있기에 그냥 사용하기만 하면 됨!