728x90
반응형
기존에는 특정 뷰의 요소들을 가져오기 위해 findViewId 메서드를 사용했습니다.
ViewBinding은 이를 해결해줄 수 있습니다.
먼저 build.gradle(Module)에 다음과 같이 적어줍니다.
android {
...
buildFeatures {
viewBinding = true
}
}
이후 gradle을 sync 시켜줍니다.
sync가 됐다면, 기존에 화면을 띄워주던 onCreate메서드를 다시 작성해주어야 합니다.
우선 lateinit으로 binding 변수를 생성해줍니다.
이후 onCreate 메서드에서 inflate메서드를 통해 binding에 뷰를 할당해줍니다.
class MainActivity : AppCompatActivity() {
lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
}
}
바인딩으로 가져온 xml의 가장 상위 뷰는 binding.root에 있습니다.
이를 setOnContentView 메서드의 인자로 넘겨주면 뷰 바인딩을 통해 화면을 정상적으로 띄울 수 있습니다.
class MainActivity : AppCompatActivity() {
lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
}
'안드로이드' 카테고리의 다른 글
[안드로이드] 앱 강제 종료 (0) | 2023.02.10 |
---|---|
[안드로이드] getBitmap 메서드와 성능 (1) | 2023.01.19 |
[안드로이드] RecyclerView 사용 및 클릭 이벤트 넣어보기 (0) | 2022.05.14 |
[안드로이드] 뒤로 가기 두 번 누르면 종료되게 만들기 (0) | 2022.05.11 |
[안드로이드] ListView 구현하기 (0) | 2022.05.11 |