[Android Dev] :: DatePickerDialog [กล่องตอบโต้สำหรับเลือกวันที่]

ห่างหายกันไปนานเลย ตั้งแต่ที่ผมเรียนวิชานั้นเสร็จก็ไม่ได้กลับมาเขียน Android Tutorial อีกเลย
วันนี้ขอซะหน่อยแล้วกันครับ ^___^

ปกติเรามี DatePicker ให้ใช้เลยบน Android ใช่ไหมครับ ? เราสามารถลากมาใช้ได้เลย
นั่นก็เป็นวิธีนึง แต่ผมจะมานำเสนออีกวิธีนึง ซึ่งจะประหยัดพื้นที่หน้าจอได้มากกว่า

เพราะว่าเราใช้ DatePickerDialog
ลักษณะคือ เราจะมี Button อยู่อันนึง พอ User กดปุ่มนี้
จะแสดง AlertDialog ที่มีลักษณะเป็น DatePicker ขึ้นมาให้เลือกวันที่
พอ User เลือกวันที่เสร็จแล้ว วันที่นั้น ก็จะมาอัพเดทที่ Text ของ Button ครับ

ภาพตัวอย่าง ::

นี่หน้าจอครับ มีปุ่มอยู่ปุ่มเดียว ถ้าเปิดตัวโปรแกรมมา Text จะอัพเดทเป็นวันที่ปัจจุบันให้ครับ

เมื่อกดปุ่มแล้ว ก็จะแสดง DatePicker แบบนี้ครับ
จากนั้นพอเลือกเสร็จกด Set แล้ว Text บน Button ก็จะเปลี่ยนเป็นวันที่ที่เลือกไว้ครับ
มาเริ่มกันเลยครับ
ส่วนของ UI คงไม่พูดถึงนะครับ ไม่มีอะไรนอกจาก Button อันเดียว กลางจอ 
ส่วนคุณจะเอาไปประยุกต์แบบไหน ก็ตามสบายเลยครับ

ตามเดิมครับ สิ่งที่ต้องใช้มีเท่านี้ import เข้ามาซะ

ต่อไปก็ประกาศตัวแปร ซึ่งประกอบไปด้วยตัวแปรปุ่ม และตัวแปรที่จะเก็บค่าของวันที่


จากนั้นทำการ Link ปุ่มกับ UI แล้วทำการ setEventListener สำหรับการกดปุ่มให้เรียบร้อย
ใช้ฟังก์ชั่นใน java.util.Calendar ทำการขอวันที่ปัจจุบันมาเก็บให้เรียบร้อย
และเรียกใช้ updateDisplay(); [อยู่ข้างล่าง] เพื่ออัพเดท Text บน Button

นี่ก็ Method updateDisplay(); ครับ ... การทำงานก็ไม่มีอะไร แค่ setText ด้วย String Builder
แต่มีปัญหาคือ เดือนของ DatePicker มันเริ่มที่ 0 ฉะนั้นเราต้อง +1 เพิ่มไปด้วยครับ
(ไม่เข้าใจเหตุผลเหมือนกัน)

Method นี่คือ EventListener ของการกดปุ่มครับ ก็เรียกใช้ showDialog()
ซึ่ง Method นี้จะไปทำการ Override onCreateDialog ให้อีกทีหนึ่ง...


Method แรกจะเป็นการเรียกให้ Dialog นั้นแสดงขึ้นมาหลังจากการกดปุ่ม
ส่วน Method ที่สองจะเป็นการกระทำหลังจากที่กด Set แล้ว
ซึ่งจะทำการ Update Text ของ Button ให้ตรงกับที่ผู้ใช้เลือก...

จบแล้วนะครับ สำหรับ DatePickerDialog
โค้ดก็ไม่ได้เข้าใจอะไรยากมากนะ...

โค้ดนี้ จขบ. ไม่ได้เขียนเองนะครับ ... ต้องการใช้แบบนี้แล้วบังเอิญเจอใน stackoverflow
ต้องขอขอบคุณมา ณ ที่นี้ด้วยครับ ^____^

Popular posts from this blog

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

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

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