ตอนที่ 1 : ภาพรวมของระบบ Dynamic Menus

ใน Project นี้เป็นเรื่องของ Dynamic Menus
หรือเมนู ที่สามารถเปลี่ยนแปลงตามความต้องการได้
สมมติว่าตอนนี้เรามี app เกี่ยวกับสื่อการสอนภาษาต่าง ๆ
ดังนี้…

mystou-com-android-dm-1-01

การทำงานของระบบคือ ก่อนพบหน้านี้ผู้ใช้จะ Login เข้ามา
ในระหว่างการ Login จะมีการตรวจสอบสิทธิการใช้งาน
ผู้ใช้งานจะสามารถเข้าใช้งานได้เฉพาะเมนูที่ตัวเองมีสิทธิ์เท่านั้น

ถ้าเมนูใดไม่มีสิทธ์ใช้ ก็จะมีข้อความแจ้งว่า
ไม่สามารถเข้าใช้งานได้

ทั้งหมดนั่นคือความต้องการในอดีต
ปัจจุบันความต้องการนี้ได้เปลี่ยนไปแล้ว
เราต้องการให้เมนูเคลื่อนไหว
คือแสดงรายการเมนูตามสิทธิ์ของผู้ใช้งาน

เช่น ถ้าผู้ใช้งาน มีสิทธ์ใช้แค่ 4 เมนู
ก็แสดงผลแค่ 4 เมนูพอ
คือ เมนู XML, JSON, HTML และ WebSerivce
ส่วนเมนู MySQL เป็นเมนูพื้นฐาน
ผู้ใช้ทุกคนสามารถใช้งานได้ ก็จะแสดงผลแบบนี้

mystou-com-android-dm-1-02

กฏ มีอยู่ว่า ลำดับของการแสดงผลนั้นต้องเรียงตามเดิม
คือเมนูใหนปิด ก็หายไป ห้ามเรียนเมนูสลับกัน

ข้อมูล รายชื่อเมนู จะถูกส่งมาจาก WebService ตาม API

แต่เริ่มต้น Project นี้ เราจะจำลองข้อมูลขึ้นมาก่อน
ทำให้เมนูสามารถ เปิด-ปิด ได้ด้วยข้อมูลจำลอง
จากนั้นค่อยทำการเชื่อมต่อกับ API ทีหลัง

เป็นอย่างไงบ้างคะ ? Project นี้น่าสนใจหรือปล่าว ?
สิ่งสำคัญที่จะได้เรียนรู้ก็คือ เรื่องของพื้นฐานค่ะ
พวก loop ซ้อน loop จะได้ใช้จริงก็ตอนนี้แหละ
กระบวนการมันจะยากตอนที่ต้องจัดการกับข้อมูลหลายชั้น
เพื่อให้ได้ผลลัพธ์ตามเงื่อนไขที่ต้องการ

มาดูโครงสร้างเบื้องต้นของ Project กันค่ะ

mystou-com-android-dm-1-03


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


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

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

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