ตอนที่ 8 : จัดการกับเหตุการณ์ เมื่อรูปภาพถูกสัมผัส

เข้าตอนนี้ตั้งใจนิดหนึ่งนะคะ ต้องใช้สมาธิเพิ่มขึ้น
เราลองเปิดรายการเมนูให้ครบทั้งหมดนะคะ ส่งมาหมดเลย

แล้วไปสร้าง Activity เปล่า ๆ ขึ้นมา 3 เมนูแรก
ตกแต่งส่วนของไฟล์ xml ต่าง ๆ ให้รู้ว่าเป็นหน้าไหนชัด ๆ ด้วยนะคะ
จะได้รายการไฟล์ต่าง ๆ ดังนี้

mystou-com-android-dm-8-1

มาที่ไฟล์ MainActivity.java
สร้างเมธอด setOnClickImage() ขึ้นมา
แล้ว Toast ค่า i ออกมาค่ะ

จะได้โค้ดดังนี้

เมื่อ Run และคลิกแต่ละเมนูดู
เราจะได้ค่า i ตามตำแหน่งของรูปภาพ เริ่มจาก 0 เรื่อย ๆ

mystou-com-android-dm-8-2

ลองนำค่า i ไปใช้ในการเปิด Activity ใหม่ตามหน้าต่าง ๆ นะคะ
ในเมธอด setOnClickImage() เพิ่มโค้ดดังนี้ค่ะ

ลอง Run แล้วคลิก 3 เมนูแรกดูนะคะ
ก็ไม่มีปัญหาอะไร นะคะ แตะหน้าไหนก็เปิดหน้านั้น

คราวนี้ลอง ปิดเมนู Java ไป แล้ว Run ดูอีกครั้ง

แตะที่เมนู PHP นะคะ

เป็นไงบ้างคะ ???
ปรากฏว่า แตะที่ PHP กลับไปเปิดหน้า Java ขึ้นมาแทน

หมายความว่า เราจะยึดเอาค่า i มาอ้างอิงใช้ในการเปิด Activity ใหม่ไม่ได้

ปัญหาคือ…แล้วเราจะใช้ค่าอะไรล่ะ ???

ใช้ชื่อรูปภาพค่ะ เราจะดึงชื่อรูปภาพมาเช็ค
ถ้าภาพเมนูไหนถูกแตะหรือสัมผัส ก็ให้เปิด Activity นั้น

แก้โค้ด เขียนใหม่กันค่ะ
นำตัวแปร imageMenus ไปประกาศไว้ระดับคลาส
แล้วดึงข้อมูลข้างในมาเช็คดังนี้

รันดู เราจะได้ค่านี้มา

mystou-com-android-dm-8-3

ทำการตัด String เอาเฉพาะคำที่เราต้องการมาเช็ค
จะได้โค้ดทั้งหมด ดังนี้ค่ะ

แค่นี้เราก็สามารถควบคุมเมนูรูปภาพต่าง ๆ ได้แล้วค่ะ 🙂
ตอนต่อไปเป็นตอนสุดท้ายแล้วนะคะ เราจะมาสรุป
เนื้อหาใน Project นี้กันค่ะ


เรื่องที่เกี่ยวข้อง : >> Dynamic Menu
ตอนที่ 1 : ภาพรวมของระบบ (Overview)
ตอนที่ 2 : ออกแบบหน้าจอ
ตอนที่ 3 : สร้าง Adapter
ตอนที่ 4 : จำลองข้อมูลที่จะได้รับจาก API
ตอนที่ 5 : ตรวจสอบสถานะของเมนู
ตอนที่ 6 : จัดการกับรูปภาพ
ตอนที่ 7 : ส่งข้อมูลให้ Adapter
ตอนที่ 8 : จัดการกับเหตุการณ์ เมื่อรูปภาพถูกสัมผัส
ตอนที่ 9 : สรุป Project Dynamic Menus


ธมนวรรณ มณีจันทร์

ธมนวรรณ มณีจันทร์

|:- เราเชื่อมั่นว่าการเสียสละและการแบ่งปันจะทำให้โลกใบนี้สวยงามมากขึ้น ทุกๆ จุดเริ่มต้นของการเรียนรู้ นำไปสู่การเรียนรู้ถัดไป เว็บไซต์แห่งนี้ขอเป็นส่วนหนึ่งของการแบ่งปันความรู้ที่ไม่มีที่สิ้นสุด มาร่วมกันผลักดันโลกของเราให้หมุนไปพร้อมกับพลังแห่งความรักด้วยกันนะคะ :) >>> |:- About Me! -:|