2 Plugin ที่จะช่วย Generate ตัวแปรและ findViewByid ให้เราแบบง่ายๆใน Android Studio

สิ่งที่ Android Developer ทุกคนต้องทำเป็นประจำแทบทุกโปรเจคคือการจัด Layout ก่อนเอาไปเขียนในโค้ดต่อ การอ้างถึง View แต่ละตัวใน Layout XML นั้น มักจะใช้ id เป็นตัวกำหนด เมื่อเราต้องการเรียกใช้ก็ต้อง findViewById ใช่ไหมหล่ะ มันก็ไม่ได้ยากเย็นอะไรนัก แต่เมื่อเจองานที่มี layout เยอะๆ View เยอะๆก็ต้องเสียเวลาไม่ใช้น้อย ฉะนั้นเมื่อมีความขี้เกียจเกิดขึ้นมาก็ต้องมีเครื่องมือที่จะช่วยสนองความขี้เกียจนี้ด้วย Plugin ใน Android Studio ที่ชื่อว่า Android Studio Prettify ที่จะมาช่วยเขียนประกาศตัวแปรและ findViewById ให้เราจาก Layout XML ได้เลย

สำหรับตัวผมนั้นจะใช้ Library ButterKnife เป็นหลัก ซึ่งจะใช้วิธี InjectView แทนการ findViewById จึงเลือกใช้ Plugin ที่จะมา Generate InjectView ที่ชื่อ ButterKnifeZelezny แทนนะครับ

บทความนี้แบ่งเป็น 2 Plugin

1 Android Studio Prettify สำหรับ findViewById แบบปกติทั่วไป
2 ButterKnifeZelezny สำหรับคนที่ใช้ ButterKnife

อันดับแรก Install Plugin ก่อน

Android Studio -> File -> Settings -> Plugins -> Browse repositores แล้วพิมพ์ชื่อ Plugin ที่จะติดตั้งลงในช่อง Search

เมื่อเห็น plugin ให้เลือกแล้วกด Install plugin
หลังจากติดตั้งแล้วก็ restart Android Studio เป็นอันเรียบร้อย

Android Studio Prettify
Android Studio Prettify

Plugin ตัวนี้มีวิธีใช้งานคือ
ให้คลิกขวาที่ setContentView() หรือว่าตัวแปร View แล้วเลือก Generate.. (หรือเอา cursor ไปวางไว้แล้วกด Alt + Insert)
แล้วจะมี popup menu ให้เลือก  Generate code ได้ 2 แบบคือ View Variables  และ View Fields โดยที่ View Fields ก็คือประกาศตัวแปรเป็น Gobal นั่นเอง

generate_view

หากเป็น Fragment ก็ได้เหมือนกัน ลองไปดูตัวอย่างนี้

สร้าง Layout fragment_a

แล้วสร้าง AFragment

หลังจากนี้เราจะใช้ Plugin Generate code จากบรรทัด

ให้คลิกขวาที่ตัวแปร( v ) แล้วเลือก Generate.. (หรือเอา cursor ไปวางไว้แล้วกด Alt + Insert) จะมี popup ขึ้นมาเลือก View Variables หลังจากนั้นจะได้ผลลัพท์แบบนี้

หรือถ้าเลือก Generate แบบ View Fields ก็จะได้ตัวแปร Gobal แบบนี้

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

สำหรับมือใหม่แนะนำให้ไปอ่านบทความเกี่ยวการการ findViewById จาก Blog คุณเอกตามนี้เลยครับ

ButterknifeZelezny
ButterknifeZelezny

ตอนนี้ ButterKnife ล่าสุดออก Version 7 ซึ่งจะเปลี่ยนการ @InjectView เป็น @Bind แทน ทำให้ใช้ Plugin ตัวนี้ใน ButterKnife V7 ตอนนี้ยังไม่ได้ ต้องรอให้ทางผู้พัฒนาอัพเดทก่อน

สำหรับคนที่ใช้ ButterKnife ต้องชอบ Plugin ตัวนี้แน่ตอน การเขียน @InjectView นั้นถือว่าสั้นและสะอาดตาแล้ว แต่ถ้า View นั้นมีมากก็เกิดความขี้เกียจได้เช่นกัน เรามาลองใช้ Plugin Generate ดูดีกว่า

อันดับแรกโปรเจคนั้นต้องมี Dependencies ของ ButterKnife ก่อนถึงจะใช้ plugin นี้ได้ หากว่าเราเพิ่ม Dependencies แล้วอาจจะต้อง restart Android Studio ซักรอบเพื่อให้ plungin มันหาเจอ

หลังจากนั้นขอกลับไปใช้ Layout XML และ fragment เดิมที่ใช้ไปกับตัวอย่างใน Plugin แรกละกัน

ที่ไฟล์ AFragment

ให้คลิกขวาที่ชื่อ Layout (fragment_a) แล้วเลือก Generate.. (หรือเอา cursor ไปวางไว้แล้วกด Alt + Insert) จะมี popup ขึ้นมาเลือก Generate ButterKnife Injections แล้วจะมีหน้าต่างให้เราเลือก View ที่ต้องการ Inject และใส่ชื่อตัวแปรที่ต้องการ แบบนี้

ButterknifeZelezny

หรือจะให้มันสร้าง ViewHolder ให้ด้วยก็ได้ โดยเลือกที่ Checkbox ด้านซ้ายล่าง

เมื่อเลือก View และกำหนดค่าเรียบร้อยแล้วกด Confirm ก็จะได้ code ที่ Generate แบบนี้

สรุป เป็นอีก Plugin ที่ Developer ควรมีติดไว้ถ้าหากได้ใช้ ButterKnife อยู่แล้ว ช่วยประหยัดเวลาได้เยอะเลยครับ

สำหรับผู้ต้องการศึกษาเกี่ยวกับการใช้ Library ButterKnife ไปอ่านบทความจาก Blog DEVAHOY ได้เลย

Comments

comments

Leave a Comment

Your email address will not be published. Required fields are marked *