ViewBinding이란 findViewById를 대체하는 방식으로 findViewById 를 쓰지 않고, XML의 view component에 접근하는 object를 반환받아 view에 접근하는 방식이다.
android {
...
viewBinding {
enabled = true
}
}
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
바인딩 클래스 이름은 규칙이 정해져 있다.
Activity 이름 | Binding 클래스 이름 |
---|---|
MainActivity | ActivityMainBinding |
SubActivity | ActivitySubBinding |
XXXActivity | ActivityXXXBinding |
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val binding = FragmentSettingBinding.inflate(inflater, container, false)
return binding.root
}
binding.textView.text = "Hello, World!"