ทำชีวิตให้ง่ายขึ้นด้วย Android Data Binding ตอนที่ 1

ทักทาย

สวัสดีผู้อ่านทุกท่าน บทความนี้เป็นบทความแรกที่ผู้เขียนได้ลองเขียนดู ซึ่งปกติแล้วผู้เขียนก็เป็นคนนึงที่ชอบอ่านบทความ ที่เหล่าผู้เขียนหลายๆท่านเขียนขึ้นบังเอิญว่าผู้เขียนได้ไปพบบทความที่หน้าสนใจจึงนำมาสานต่อ

จุดเริ่มต้น

ปกติแล้วเวลาที่ ผู้อ่านจะทำการเชื่อม view ในไฟล์ XML จะต้องเชื่อมจากการใช้คำสั่ง findViewById ซึ่งมันก็เหมือนว่าไม่มีอะไรมาก แต่ลองคิดเล่นๆ ว่าถ้ามี view ใน XML สักสิบตัว ก็ทำให้ Code รกไปเป็นสิบบรรดทัด นี่ยังไม่ได้นับบรรทัดตัวแปรของ view ที่ประกาศไว้อีกหละ รวมๆแล้วก็ยี่สิบบรรทัดเข้าไปแล้ว นี่เรายังไม่ได้สั่งใช้งาน view เลยนะ

ทีนี้ทำไงละไม่เชื่อมก็ใช้งานไม่ได้ จึงเป็นที่มาของเจ้า Android Data Binding นี่แหละแล้วเจ้า Library มันทำงานยังไงหละ มันไม่ได้ทำการเชื่อม XML ไฟล์กับ view เหรอ ? ป่าว!!! มันก็ยังต้องเชื่อมเหมือนเดิมนั้นแหละ เพียงแต่ว่าเราไม่ต้องมานั่งเชื่อมเองก็เท่านั้น เอาหละร่ายมาซะยาว เรามาเริ่มกันเลยดีกว่า !!!

ลองของ

ก่อนอื่นก็ต้องสร้างโปรเจคขึ้นมาก่อน ผู้เขียนให้ชื่อโปรเจคว่า DemoDataBinding

ต่อมาก็ให้ทุกคนหาไฟล์ที่ชื่อ build.gradle ในส่วนของ app เปิดขึ้นมาแล้วก็เพิ่ม Code ตามที่ตัวอย่างด้านล่าง

จากนั้นก็ทำการ sync gradle ให้เรียบร้อย เพียงแค่นี้เราก็ได้อัญเชิญ เจ้า Android Data Binding มาใช้ในโปรเจคเราเรียบร้อยแล้ว

ทีนี้การที่จะใช้งาน Android Data Binding ก็มีท่านิดหน่อย มาลองทำตามผู้เขียนเลยละกัน ก่อนอื่นให้ไปที่โฟลเดอร์ layout ที่อยู่ในโปรเจคหาไฟล์ที่ชื่อว่า activity_main.xml จากนั้นให้ทำการใส่ <layout></layout> ครอบ layout เดิมจากนั้นก็ให้ใส่ id ไว้ที่ TextView ด้วยแล้วก็ทำการ Mark Project ไปหนึ่งครั้งเท่านี้การเตรียมการของเราก็เรียบร้อยแล้ว

อ่า… หลังจากเตรียมการเรียบร้อยแล้ว เราก็มาลองเรียกใช้กันดูบ้าง ให้ผู้อ่านไปที่ไฟล์ MainActivity.java เปิดไฟล์นี้ขึ้นมา

ให้สร้าง object นึงขึ้นมาซึ่งเป็นตัวแทนของไฟล์ activity_main.xml ให้พิมพ์ว่า ActivityMainBinding จะสังเกตได้ว่าเจ้า Android Data Binding จะนำชื่อไฟล์ XML แล้วต่อด้วย Binding มาตั้งเป็นชื่อ class เอิ่ม… สะดวกดีนะ object ที่สร้างขึ้นผู้เขียนจะให้ชื่อว่า binding ละกันง่ายดี

ActivityMainBinding binding;

ทีนี้ในส่วนของ setContentView() ใน onCreate() ก็ให้เพิ่มโค๊ตเข้าไปเล็กน้อยเป็น

binding = DataBindingUtil.setContentView(this,R.layout.activity_main);

ทีนี้… เราก็จะได้ object ที่แทนไฟล์ มาเรียกใช้งาน view ที่อยู่ใน XML แล้ว วิธีการเรียกใช้ก็ง่ายแสนง่าย เพียงผู้อ่านกำหนด id ให้กับ view นั้นๆ ผู้อ่านก็สามารถเรียกใช้ view นั้น ได้ตรงๆ เลย ถ้ายังไม่ลืม ผู้เขียนได้ให้ ผู้ใช้กำหนด id ให้กับ TextView ชื่อว่า tv_hello เราว่าลองเปลี่ยนข้อความให้กับ TextView ตัวนี้กัน โดยพิมพ์ Code ตามนี้

binding.tvHello.setText("Yo!!!");

เพียงแค่นี้ก็สามารถเปลี่ยนข้อความของ TextView ได้แล้ว (ลองรันด้วยนะครับ ว่าเปลี่ยนมั้ย) เป็นยังไงบ้างหละครับ สะดวกกับชีวิตมากขึ้นเลยใช่มั้ย

ส่งท้าย

ผู้เขียนขอสรุปคร่าวๆ ว่าเจ้า Android Data Binding นั้นใช้ทำอะไรและมีประโยชน์ อย่างไรบ้าง

  • ใช้เชื่อมต่อระหว่าง view กับ XML ให้อัตโนมัติ แทนการ findViewById
  • ลดความสิ้นเปลืองของพื้นที่ ที่ใช้สำหรับเขียน Code ทำให้ Code ไม่รก
  • ใช้งานง่าย และ สะดวกต่อการเรียกใช้

โดยส่วนตัวแล้วผู้เขียน คิดว่าเจ้า Android Data Binding น่าใช้งานพอสมควร แต่ถ้า Library ตัวนี้ทำได้ เพียงเท่านี้ ก็คงไม่ได้มีความจำเป็นที่จะนำมาใช้มากนัก เอาเป็นว่าเราจะมีดูความเจ๋งของเจ้า Library นี้ในตอนถัดไป ขอบคุณทุกท่านที่อ่านมาจนถึงตรงนี้ หากเนื้อหามีการผิดพลาดประการใด ผู้เขียนต้องขออภัยไว้ ณ ที่นี่ด้วย

ไว้พบกันใหม่ครับ บ๊ายบาย


Like what you read? Give Mr.Smile a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.