[Android Dev] Begin With Android (Part II :: Java Coding)

ขอออกตัวไว้ก่อนเลยว่า "ตัวผมเอง ยังไม่เข้าใจ Coding ทั้งนั้น บางอย่างบอกไม่ได้ว่าบรรทัดไหนคืออะไร"
Blog นี้จะใช้ศัพท์บางอันที่ผมคิดเอง จำเอง... อาจจะไม่เป็นทางการ...

เมื่อ Blog ที่แล้วเราได้พูดถึงการวาด Interface ของ Android กันนะครับ ^^
วันนี้เราจะมา Code กัน...

สิ่งที่เราต้องทำคือ หลักการ MVC (ค่อยไปเรียนรายละเอียดกันใน OOSD Class (ถ้ามีสอน) )
MVC ย่อมาจาก Model , View , Controller

Model คือ Engine ข้างในทั้งหมด... ระบบการทำงานกับข้อมูลที่มีอยู่...
View คือ หน้าตาของ Interface ของเรา ซึ่งในที่นี้ก็คือ main.xml ที่เราเล่นกันไปคราวที่แล้ว
Controller เป็นไฟล์ Class ชนิดหนึ่งที่เราจะทำการ เชื่อม,ติดต่อ ระหว่าง Model และ View


**โปรแกรมที่สำเร็จแล้ว นั่นคือ มีปุ่ม 1 ปุ่ม เมื่อกด TextView จะแสดง Hello World**

เมื่อ Blog ที่แล้วเราทำในส่วนของ View เสร็จแล้วนะ... เหลืออีก 2 อันคือ Model , Controller
เริ่มที่ Model ก่อน

ให้เราทำการสร้าง Class ขึ้นมาใหม่ 1 ไฟล์โดยคลิกขวาที่ Package ของเราแล้วเลือก...


ในที่นี้บาสตั้งชื่อมันว่า show.java 
(จริง ๆ แล้วผิดหลัก ชื่อ Class ควรจะขึ้นต้นด้วยตัวใหญ่... บาสพลาดเอง ขี้เกียจแก้)


ลองนึกภาพตามนะครับ ข้อมูลที่จะไปแสดงบน TextView นั้นมันเป็นข้อความหรือก็คือ String นั่นเอง
เราจึงต้องสร้าง Model ตัวนี้มาเพื่อรองรับการทำงานนั้น ๆ ในเรื่องของการ กำหนดค่า,ส่งค่ากลับไปแสดง

ใน Class นี้เราต้องมีหลัก ๆ ก็คือ 
 - ตัวแปรของ String ของเรา 
 - getter , setter

ต่อไปในส่วนของ Controller นะครับ...
Controller จะเป็นส่วนในการเชื่อมต่อ Model และ View ให้เรา ในที่นี้จะใช้ไฟล์ ButtonClicked.java นะ
มันคือ ไฟล์แรกเริ่มของเรานั่นเองตอนที่สร้าง Project ^^


ขั้นแรก ก็ import สิ่งที่เราต้องใช้มาซะก่อนนะ 



**โค้ดที่มีมาอยู่แล้วตอนต้นไม่ต้องลบก็ได้นะครับ ^^ หรือจะลบแล้วพิมพ์ตามนี้ก็ได้**


ใน Class หลักของไฟล์ ButtonClicked.java นี้ มันจะ implement ส่วนหนึ่งมาให้อยู่แล้ว... 
อย่าลบมันดีกว่า ให้เพิ่มเติมเอาเองตามต้องการ...

สิ่งที่บาสเพิ่มไปก็คือ....

 - ประกาศตัวแปรทั้งหมดที่ต้องใช้ คือ ปุ่ม(Button) , พื้นที่แสดงข้อความ(TextView) , dataObject(show)
 - บรรทัดที่ 19,20,21 เป็นการกำหนดค่าเริ่มต้นของตัวแปรของเรา... ซึ่ง widget ต่าง ๆ จะกำหนดค่าเริ่ม
   ต้นจาก id ที่เราออกแบบใน main.xml โดยใช้ฟังก์ชั่น findViewById
 - บรรทัดที่ 23 เราจะกำหนดค่า Listener ของเราเมื่อมีการกระทำอะไรสักอย่าง... (ในที่นี้คือ กดปุ่ม)
    onClick คือ ชื่อฟังก์ชั่นที่เราต้อง implement ต่อไปว่า เมื่อคลิกแล้วอะไรจะเกิดขึ้น...
 - บรรทัดที่ 24 ก็ทำการ setText ให้กับข้อความที่เราต้องการนำไปแสดงโดยเรียกใช้ setter ใน show.java

ต่อไปเราจะมาเขียน ฟังก์ชั่น onClick กันนะครับ ^^ 


ก็จะเป็นไปตามนี้ เราต้องเขียนแบบนี้เรียกว่า -->  Anonymous inner Class
ซึ่งบาสก็ยังไม่เข้าใจมันมากนัก เท่าที่สอบถามมา มันคือ Class ที่อยู่ใน Class อีกที ซึ่งทำงาน
ขึ้นตรงกับ Object ตัวนี้ (Class ButtonClicked) เท่านั้น

โดยในเชิงการทำงานนั้นคือ สร้าง Listener ขึ้นมาหนึ่งตัวเพื่อใช้ method onClick ในการทำงาน
(มันน่าจะ AutoComplete มาให้ทั้งหมดนะ... ตอนที่เราสร้าง Listener อ่ะขึ้นปั๊บกด Enter ได้เลย)

ใน method onClicked นั้น... 
จะทำงานแบบนี้คือ ... 

 - บรรทัดที่ 32 คือเรียกใช้ method setText ของ TextView เพื่อทำการกำหนดข้อความที่จะไปแสดงบน
   TextView ในที่นี้ก็คือ เราเรียกใช้ method getMessage ของ show.java อีกที
 - บรรทัดที่ 33 เป็นการเรียกใช้ method setTextSize ซึ่งเป็น method ที่ใช้ในการปรับขนาดตัวอักษร
   ของ TextView ของเรา... ซึ่งรับ parameter เป็น float บาสกำหนดให้เป้น 30.0f

** ถ้าเราใส่ 30.0 เฉย ๆ ... ใน Java นั้น type ที่ได้จะเป็น double ทำให้มัน Error เพราะ method setTextSize รับเป็น float เท่านั้น ในการที่ระบุว่า ทศนิยมจำนวนนั้นเป็น float คือการเติม "f" ต่อท้ายค่านั้นไปครับ

ขอจบบทความเพียงเท่านี้นะ ^^
หวังว่าคงจะได้ Apps นี้กันทุกคนนะครับ ไม่มีอะไรยากเลย... 

Blog ต่อไป น่าจะมาเล่นกันเรื่อง Relative Layout และ EditText กันนะ... ^^


Thanks :: พี่ก้อง Computer Science :: SIT,KMUTT ที่ให้คำตอบเรื่อง Anonymous Inner Class

Comments

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

Command Line Compiling C/C++ ,Java [Windows, Mac]

การเขียนโปรแกรมแก้ปัญหา "โจทย์รูปทรงสมมาตร"