4 พ.ย. 2557

Contextual Menu

ขอขอบคุณภาพจาก http://developer.android.com


Contextual Menus

เรียกอีกอย่างว่า เมนูลอย เป็นเมนูที่ซ่อนอยู่ โดยจะปรากฏเมื่อผู้ใช้ Action ตามเงือนไขที่เราเขียนเอาไว้ โดยวันนี้จะมา พาทำกันสักหน่อย ~!


  • ทำตามภาพไปเลยครับ New Project ขึ้นมาใหม่ 
  • Application name : demo_Contextual Menu (ชื่อแอพเรา)
  • Company Domain : devdroidthailand (ชื่อองค์กรหรือบริษัท อะไรก็ได้ครับ)
  • Project Location : ที่อยู่แอพฯ ของเราครับ

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • เลือกให้แอพฯ ทำงานบน  API 14 : android 4.0 แล้ว next..

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • กำหนด เป็น Blank Activity ครับ จากนั้นกด next..

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • กำหนด ตามภาพเลยครับ
  • Activity Name : MainActivity (ชื่อ ไฟล์หลัก)
  • Layout Name : activity_main (ชื่อไฟล์เลย์เอ้าท์)
  • Title : MainActivity (ชื่อเรียกไฟล์หลัก String Resource)
  • Menu Resource Name : menu_main (ชื่อเมนู)
ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • ก็จะได้หน้าตาแอพฯ เรา แบบนี้ ~~! 

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • ในตัวอย่างนี้จะสร้างแอพ อย่างง่าย ๆ 
  • จำเป็นต้องใช้รูป 1 รูป ผมตั้งชื่อเป็น img.jpg แล้วเอาไปไว้ใน res/drawable เลยครับ

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com

  • เขียนโค้ดเพิ่ม Widget ImageView, Button เข้าไปครับ ตามภาพเลย..

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com

  • จากนั้น New Menu Resource ขึ้นมาใหม่ ภายใต้ res/menu/ ครับ

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com

  • ตั้งชื่อว่า context_menu

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • สร้างเมนูได้เลย... 

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • กลับมาไฟล์​ MainActivity.java กันครับ 
  • เริ่มประกาศค่าและสั่งงาน Contextual Menu ให้กับ ImageView ของเราครับ 

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • ขั้นตอนต่อมา Override method ชื่อ onCreateContextMenu() 
  • โดย method onCreateContextMenu() ตัวนี้ อยู่นอก onCreate(); นะครับ สังเกตุดีดี

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • ขั้นตอนต่อมา ลองรัน.. อ๊ะมาแล้วว ถ้ายังไม่ได้ตามในภาพ ให้ย้อนกลับไปทำใหม่ครับ
  • Run on Genymotion Device เป็น Nexus 5 ครับผม 

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • ขั้นตอนต่อมา เขียน Event เมื่อกดปุ่มเมนูใดๆ บน Contextual Menu
  • ผมจำลองสร้าง method ง่าย ๆ แยกออกเป็นปุ่มๆไป เพื่อให้ง่ายต่อการนำไปใช้งานครับ

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com


  • ลองทดสอบรัน..

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com

ภาพนี้ขอสงวนสิทธิ์สำหรับบล็อค http://pedbindai.blogspot.com

"หวังว่าคงมีประโยชน์ไม่มากก็น้อยแหละครับ ที่เหลือลองปรับเปลี่ยนประยุกต์ใช้งานดูเอานะะะ"
บทความต่อไป จะพาทำอีกแบบในลักษะที่ชื่อว่า Contextual Action Bar (CAB) คือ ให้เมนูคำสั่งต่าง ๆ จับไปอยู่ใน Action Bar ให้หมดเมื่อมีการ Action Contextual ครับ รอติดตามกัน...

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Ads Inside Post

-