res / layout 폴더의 xml 파일별 하나의 클래스 생성
xml 파일의 View를 관리할 수 있는 기능 구현
1. app 수준의 gradle 파일에 추가 - build.gradle(Module:app)
android {
viewBinding {
enabled = true
}
}
lateinit var activityMainBinding: ActivityMainBinding
activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(activityMainBinding.root)
4-1. 고차함수 사용
class MainActivity : AppCompatActivity() {
lateinit var activityMainBinding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(activityMainBinding.root)
activityMainBinding.button.setOnClickListener {
activityMainBinding.text.text = ""
}
}
}
4-2. 객체를 매개변수로 전달하는 함수 사용
val buttonClickListener = ButtonClickListener()
activityMainBinding.button.setOnClickListener(buttonClickListener)
inner class ButtonClickListener : OnClickListener {
override fun onClick(v: View?) {
activityMainBinding.text.text = ""
}
}
4-3. 범위 지정 함수 (run)
activityMainBinding.run {
button.run {
setOnClickListener {
activityMainBinding.text.text = ""
}
}
button2.run {
setOnClickListener {
activityMainBinding.text.text = ""
}
}
}