본문 바로가기
Android (Kotlin)/kotlin 문법

ViewBinding

by 키윤 2024. 1. 4.

findViewById 대체 가능한 기능이다. 코드 작성을 훨씬 편리하게 만들어주고 뷰와의 상호작용을 쉽게 만들어준다.

step 1.

build.gradle 파일에 아래 코드 추가

android {
    ...
    buildFeatures {
        viewBinding = true
    }
}

몇몇의 레이아웃 파일을 바인딩하고 싶지 않을  떄에는 아래 코드를 레이아웃 파일에 추가해주면 된다.

<LinearLayout
        ...
        tools:viewBindingIgnore="true" >
    ...
</LinearLayout>

액티비티 레이아웃 페이지 이름이 activity_sign_in.xml 이라면 이 이름을 Pascal Case로 바꾼 ActivitySignInBinding클래스를 만든다.

클래스에서 코드를 아래와 같이 적어준다.

private lateinit var binding: ResultProfileBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ResultProfileBinding.inflate(layoutInflater)
    val view = binding.root
    setContentView(view)
}

이제 버튼을 눌렀을 때 아래와 같이 사용이 가능해진다.

binding.name.text = viewModel.name
binding.button.setOnClickListener { viewModel.userClicked() }