View Binding เป็นฟีเจอร์ของ Android ที่ช่วยให้เราเข้าถึง View ต่างๆ ใน XML layout ได้อย่างปลอดภัยและสะดวกขึ้น โดยไม่ต้องใช้ findViewById()
หรือใช้ synthetic import
ที่ถูกเลิกใช้ไปแล้ว
View Binding ช่วยลดโอกาสเกิด NullPointerException และช่วยเพิ่มประสิทธิภาพของแอป เนื่องจากมันจะสร้างคลาส binding เฉพาะสำหรับแต่ละ layout ที่เปิดใช้ฟีเจอร์นี้
ไปที่ไฟล์ build.gradle.kts เพิ่ม
buildFeatures { viewBinding = true }
และกดที่ Sync Now

ประกาศฟิลด์ชื่อ binding ไทป์ ActivityMainBinding
** ตัว ActivityMainBinding จะเปลี่ยนไปตามคลาส Activity ที่เราสร้าง
private lateinit var binding: ActivityMainBinding

ภายใต้เมธอด onCreate ให้ assign ตัวแปร binding เป็น
binding = ActivityMainBinding.inflate(layoutInflater)
และ setContentView เป็น
setContentView(binding.root)
หากเราจะอ้างอิงตัว Component ให้เรียกใช้ผ่านตัวแปร binding เช่น binding.name.text = "สวัสดีจ้า"
Fragment ViewBinding
ViewBinding ใน Fragment จะคล้ายการทำใน Activity แต่จะเป็นการทำภายในเมธอด onCreateView แทน

**เราต้องเซ็ต _binding = null
ใน onDestroyView()
เพื่อป้องกัน Memory Leak
Discussion