[Android Dev] Create Form with EditText

วันนี้เราจะเรียนรู้ Widget ที่สำคัญอีกอย่างนึงของ Android Development นะครับ
นั่นคือ

EditText
โดยหน้าตาของ EditText จะเป็นแบบนี้นะ...


คือจะเป็นกรอบข้อความที่เราสามารถจะ Input ค่าอะไรสักอย่างลงไปได้ และกระทำการกับมัน...
โดยคำสั่งที่สำคัญมีดังนี้นะ ^^

XML
ไล่กันทีละบรรทัดนะ

 - ค่าไอดี หรือตัวแปรของเรานั่นเองเอาไว้ link กับไฟล์ .java ของเรา
 - บรรทัดที่ 2,3 คือค่าความกว้างและสูงของ EditText
 - ต่อมา InputType คือเราสามารถกำหนดได้ว่า สิ่งที่จะใส่ลงไปเป็นอะไร เช่น "text" , "number"
   ซึ่งการกำหนดตรงนี้ จะผันแปรตาม keyboard ที่เด้งขึ้นมา เช่นถ้าเรากำหนดเป็น "number" นั้น
   keyboard ที่เด้งขึ้นมา ก็จะเป็น numpad ให้เราใส่เฉพาะ "ตัวเลข" เท่านั้น
 - บรรทัด 5,6,7,8 ก็เป็นการจัดให้อยู่ตรงกลางในแนวนอนและกิน "ขอบ (margin)" มาเท่าไร ^^
 - ต่อมาเป็น textStyle ก็เป็นการเซ็ตรูปแบบของตัวอักษรที่เป็น Input ในที่นี่คือ "ตัวหนา (bold)"
 - สุดท้าย... Hint นั่นคือ เมื่อเวลาเราไม่มีการใส่ค่า ข้อความนี้จะปรากฎอยู่ที่ช่อง EditText
   เมื่อเรา Input ข้อความไป อันนี้ก็จะหายไป ^^ เป็นเหมือนการ Guide Input ให้ User นะครับ

Coding

มาในส่วนของ Coding กันบ้าง...
ขั้นแรกคือการประกาศตัวแปร EditText และเชื่อมต่อกับ Inteface
ถ้าอ่านมาจนถึงตอนนี้เนี่ย... คงต้องเป็นแล้วแหละครับ

ต่อไป Method สำคัญ ๆ เกี่ยวกับตัว EditText ล่ะนะครับ (เฉพาะที่ผมใช้ ซึ่งมันมีมากมาย ลองเล่นดูนะ)

Method getText() ซึ่ง Method นี้จะเป็นการนำค่าที่ผู้ใช้ใส่ซึ่งจะยังไม่ใช่ String นะครับ เป็นประเภทของ Editable จะยังเอามาใช้เป็น String ไม่ได้ ในที่นี้ผมแค่ถามความยาวว่ามันเป็น 0 หรือป่าว ?? นั่นหมายถึง ตัว EditText ว่างอยู่ แล้วมีการ Click งัยล่ะครับ ผมเขียนขึ้นมารองรับในกรณีแบบนั้น

จะทำค่าใช้ต้องแบบนี้ครับ... ในที่นี้ผม getText() แล้วเรียกใช้ method toString() ต่อกันไปเลยครับ... 
ในที่นี่ผม get ค่ามาแล้วเปลี่ยนเป็นข้อมูลชนิด Float ด้วยนะ... ^^

อันนี้เป็นการ setText ครับ เราสามารถเซ็ตค่าใน EditText ได้... เช่นให้ผลลัพธ์ไปออกที่ EditText 
หรือการเซ็ตค่า Default 


Problem :: Keyboard not Disappear


เมื่อเราใส่ EditText ลงไปแล้วนั้น.... เมื่อกด Run ดู... เมื่อ Touch เข้าที่ EditText แล้วมันก็จะขึ้น keyboard มาให้ใส่ Input แต่จะเกิดปัญหาครับ ... ปัญหานั่นคือ ...

"เมื่อเรากด Return แล้ว มันเป็นการ Enter เว้นบนนทัดแทนที่จะเป็นการ Confirm ข้อความที่เราพิมพ์ไป"
ซึ่งปัญหานี้มีวิธีแก้อยู่นั่นคือ เราต้องแทรก Code นี้ลงไปในการ Coding ของเรานะครับ

"ใส่ให้ถูกที่นะครับ... ^^"

ขอจบ Blog นี้เพียงเท่านี้นะครับ ^^

Popular posts from this blog

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

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

"อีสุกอีใส" ประสบการณ์เมื่อต้องมาเป็นตอนอายุ 22