Android Menus (हिंदी में )
Android Menus
Introduction to Android Menus
Menus किसी भी एप्लीकेशन का एक बहुत ही कॉमन इंटरफ़ेस होता है। यूजर को easy और designer यूज़र इंटरफ़ेस प्रोवाइड करने के लिए आप menus को यूज़ कर सकते है। Menus को आप नीचे दिए गए 3 reasons की वजह से use कर सकते है।
User को application के दूसरे components की link provide करने के लिए।
Application को structure प्रोवाइड करने के लिए।
easy navigation के लिए।
Android में menus 3 तरह की होते है।
Options menus
Context menus
Popup menus
Options Menus
किसी भी application के लिए options menus primary menus होती है। Options menu में आपको वो options डालने चाहिए जो पूरी application को control करते है। जैसे की सर्च और सेटिंग्स का option आप options menus में डाल सकते है।
यदि आप android gingerbread या उससे lower versions के लिए एप्लीकेशन develop कर रहे है तो यूज़र menu बटन पर क्लिक करके menus को देख सकता है।
यदि आप android honeycomb या उससे उपर के versions के लिए options menus develop कर रहे है तो यूज़र app bar के द्वारा menus को access कर सकते है।
Creating Options Menus
Options menu के लिए items आप या तो activity subclass से या fragment subclass से डिक्लेअर कर सकते है। यदि आप दोनों तरीके से items डिक्लेअर करते है तो यूज़र interface में दोनों combine हो जाते है।
Activity के item पहले show होते है इसके बाद जिस order में fragments को ऐड किया गया था उसी आर्डर में उनके items शो होते है। यदि आप चाहे तो menu items को reorder भी कर सकते है।
किसी भी activity में options menu define करने के लिए आपको onCreateOptionsMenu() मेथड को override करना होता है। इस मेथड का स्ट्रक्चर नीचे दिया जा रहा है।
@Overridepublic boolean onCreateOptionsMenu(Menu menu){// put menu resources in menu from XML}
इस मेथड के द्वारा आप मेनू resources को भी मेनू में डाल सकते है। आप चाहे तो आप add() मेथड के द्वारा items को add भी कर सकते है। और मेनू में items को ढूंढने के लिए आप findItem() मेथड यूज़ कर सकते है।
Context Menus
एक context menu वो option शो करती है जो किसी एक एलिमेंट को effect करती है. ये एलिमेंट वो होता है जिसे यूज़र ने long click करके छोड़ा है।
Context menus movable menus होती है। जब यूजर बहुत देर तक किसी एलिमेंट पर टच करके छोड़ता है तो ये menu शो होती है। ये उस element को effect करने वाले ऑप्शन प्रोवाइड करती है जिस पर यूज़र ने long क्लिक किया है।
यदि आप android honeycomb से higher versions के लिए एप्लीकेशन develop कर रहे है तो selected elements पर एक्शन परफॉर्म करने के लिए आपको contextual action mode यूज़ करना चाहिए।
आप किसी भी view के लिए context menu प्रोवाइड कर सकते है। लेकिन ज्यादातर इन्हे view groups के लिए यूज़ किया जाता है क्योंकि view groups elements पर direct actions परफॉर्म किये जा सकते है।
Creating Context Menus
Context menu क्रिएट करने के लिए सबसे पहले आपको जिस view के लिए आप context menu क्रिएट करना चाहते है उसको register करना होगा। इसके लिए आपको registerForContextMenu() मेथड कॉल करना होगा और उसमे view पास करना होगा।
इसके बाद आपको onCreateContextMenu() मेथड को ओवरराइड करना होगा। जब भी यूज़र registered view पर long क्लिक करता है तो system इस मेथड को कॉल करता है। इसी मेथड में आप menu items define करते है। इस मेथड का स्ट्रक्चर नीचे दिया जा रहा है -
@Overridepublic void onCreateContextMenu(ContextMenu contextmenu, View view, ContextMenuInfo contextmenuinfo){// declare menu items and put menu resources}
इसके बाद आपको onContextItemSelected() मेथड को ओवरराइड करना होगा। जब भी कोई यूज़र menu में से कोई item select करता है system इस मेथड को कॉल करता है। आप item select होने पर जो task complete करना चाहते है वो इस मेथड में कर सकते है। इस मेथड का स्ट्रक्चर नीचे दिया जा रहा है।
@Overridepublic boolean onContextItemSelected(MenuItem item){// perform desired task}
getItemId() मेथड से आप selected item की id पा सकते है और उस ही item पर action ले सकते है।
Popup Menus
एक popup menu items को vertical list में शो करती है। Pop menus anchor view के साथ शो होती है। अगर जगह available होती है तो ये anchor view के नीचे show होती है नहीं तो anchor view के उपर शो होती है।
Popup menus ऐसे options प्रोवाइड करती है जो same activity में दूसरे views के साथ perform किये जा सकते है।
Creating Popup Menu
यदि आप menu को XML के द्वारा define करना चाहते है तो ऐसा आप इस तरह कर सकते है -
सबसे पहले आपको PopupMenu क्लास का एक object क्रिएट करना होगा। Object क्रिएट करते समय आप उसमे current application का context और वो view pass करेंगे जिसमे आप popup menu लगाना चाहते है।
इसके बाद PopupMenu.getMenu() मेथड कॉल करके आप को Menu का reference लेना होगा और MenuInflater की द्वारा menu में resources put करने होंगे।
सबसे आखिर में menu को शो करने के लिए PopupMenu.show() method कॉल करना होगा।
Comments
Post a Comment