Skip to main content

Android Menus

Android Menus 


  • Introduction to android menus in Hindi
  • Creating a menu in XML file in Hindi
  • Options android menus in Hindi
  • Context android menus  in Hindi
  • Popup android menus in Hindi

Introduction to Android Menus

Menus किसी भी एप्लीकेशन का एक बहुत ही कॉमन इंटरफ़ेस होता है। यूजर को easy और designer यूज़र इंटरफ़ेस प्रोवाइड करने के लिए आप menus को यूज़ कर सकते है। Menus को आप नीचे दिए गए 3 reasons की वजह से use कर सकते है।  

  • User  को application के दूसरे components की link provide करने के लिए।
  • Application को structure प्रोवाइड करने के लिए। 
  •  easy navigation के लिए।

 Android में menus 3 तरह की होते है। 

  1. Options menus 
  2. Context menus 
  3. Popup menus 


Creating a Menu in XML Layout File 

सभी menu types के लिए menu items डिफाइन करने के लिए android एक स्टैण्डर्ड XML format प्रोवाइड करता है। अपनी activity के कोड में menu क्रिएट करने की बजाए यदि आप चाहे तो आप एक XML layout file में भी menus बना सकते है। बाद में आप इसे अपनी activity में load कर सकते है। ऐसी XML layout file को menu resource कहते है। 


इसके लिए सबसे पहले आपको अपने प्रोजेक्ट की  res/menu directory में एक XML फाइल क्रिएट करनी होगी। 

XML file में menu क्रिएट करने के लिए आप कुछ elements को यूज़ करते है आइये इन एलिमेंट्स के बारे में जानने का प्रयास करते है। 

<menu>  -  ये एलिमेंट menu define करता है। ये element menu items के base का काम करता है। आपकी file में सबसे पहले ये एलिमेंट ही declare होना चाहिए। इसके अंदर आप <item> और <group> एलिमेंट डाल सकते है।   
          
<item> - ये एलिमेंट एक menu item क्रिएट करता है। हर item के लिए आपको एक item element declare करना होगा। <item> element कुछ attributes यूज़ करता है जो की नीचे दिए जा रहे है। 

android : id  - ये एक यूनिक id होती है जिसे android system menu item को uniquely identify करता है। 

android : icon  - इस attribute के द्वारा आप किसी image को item के icon की तरह use कर सकते है। 

android : title  - इस attribute में आप item का title declare करते है।      


<group> - ये element भी container की तरह ही होता है, लेकिन ये एक जैसे menu items को एक साथ रखने के लिए use किया जाता है। 
      


Example 


<menu xmlns:android="schema address">
<item andorid:id="1" android:icon="address of icon image" android:title="First Item">
<item andorid:id="2" android:icon="address of icon image" android:title="Second Item">
<item andorid:id="3" android:icon="address of icon image" android:title="Third Item">
</menu>


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 करना होता है। इस मेथड का स्ट्रक्चर नीचे दिया जा रहा है।


@Override
public 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 करते है। इस मेथड का स्ट्रक्चर नीचे दिया जा रहा है -



@Override 
public void onCreateContextMenu(ContextMenu contextmenu, View view, ContextMenuInfo contextmenuinfo)
{
   // declare menu items and put menu resources
} 


इसके बाद आपको onContextItemSelected() मेथड को ओवरराइड करना होगा। जब भी कोई यूज़र menu में से कोई item select करता है system इस मेथड को कॉल करता है। आप item select होने पर जो task complete करना चाहते है वो इस मेथड में कर सकते है। इस मेथड का स्ट्रक्चर नीचे दिया जा रहा है।


@Override
public 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

Popular posts from this blog

Android Services

Android Services Introduction to  android services in Hindi  Declaring  services in Hindi Creating a  android service in Hindi Introduction to Android Services इससे पहले की आप जाने की service क्या होती है आइये जानते है की service क्या नहीं होती है - एक service separate प्रोसेस नहीं होती है। ये आपकी एप्लीकेशन का ही पार्ट होती है।  एक service thread नहीं होती है।  आइये अब देखते है service क्या होती है - Service एक facility होती है जिससे आप android system को बता सकते है की आप कोई काम background में करते रहना चाहते है।  Service एक facility होती है जिससे एक एप्लीकेशन अपनी कुछ functionality दूसरी applications को expose कर सकती है।    हर service क्लास का <service> declaration AndroidManifest.xml file में होना चाहिए। Services को आप context.startService() और context.bindService() मेथड्स से स्टार्ट कर सकते है।            जब service component क्रिएट होता है तो android syst...

Android Fragments

Android Fragments Introduction to android fragments in Hindi Android fragments life cycle in Hindi Types of android fragments in Hindi Creating android fragment in Hindi Introduction to Android Fragments एक fragment किसी activity के अंदर एक separate UI (user interface) होता है। Fragments की खुद की life cycle और input events होते है। आप एक fragment को कई activities में use कर सकते है। जब आपकी activity running state में हो तब भी आप fragments को add और remove कर सकते है। Fragments को आप sub activity भी कह सकते है।   Android fragments को android के Honeycomb version में introduce किया गया था।  Android fragments से पहले आप user को एक बार में एक activity ही show कर सकते थे इसलिए आप स्क्रीन को अलग अलग parts में divide नहीं कर सकते थे। Fragments के आने से application design और भी ज्यादा flexible हो गयी क्योंकि आप यूजर को एक साथ एक से ज्यादा interface शो कर सकते है और उन्हें separately manage भी कर सकते है। अब आपके पास activity तो एक ही रहेगी लेकिन आप इसमें ब...

Android Development Tools

Android Development Tools  Android SDK in Hindi  Android Debug bridge in Hindi Android gradle in Hindi Android studio in Hindi Android run time and delvik in Hindi  Android SDK  Android SDK (Software Development Kit) -  Android SDK  में वो सभी टूल्स होते है जिनकी आपको एंड्राइड एप्लीकेशन क्रिएट करने में, कम्पाइल करने में और एप्लीकेशन को पैकेज करने के लिए जरुरत पड़ेगी।  Android SDK में आपको सोर्स कोड के साथ सैंपल प्रोजेक्ट्स, डेवलपमेंट टूल्स, एक इमुलेटर और एप्लीकेशन डेवेलप करने के लिए रिक्वायर्ड लाइब्रेरीज मिलती है। सभी एप्लीकेशन java में डेवेलप की जाती है और डेलविक वर्चुअल मशीन पर रन की जाती है। Android debug bridge  ADB  (Android Debug Bridge  ) - ADB android SDK का एक कमांड लाइन  टूल है जिसकी मदद से आप अपनी एप्लीकेशन को वर्चुअल डिवाइस या किसी रियल डिवाइस पर रन करवा सकते है और डिबग कर सकते है। ये एक क्लाइंट सर्वर प्रोग्राम होता है जिसमे एक क्लाइंट होता है, एक सर्वर...