2012-01-31 16 views
6

मेरे पास मेरे मेनू के लिए एक ऑनक्लिक फ़ंक्शन है लेकिन मैं यह नहीं समझ सकता कि आईडी मेरे सबमेनू के लिए क्या है ताकि मैं सबमेनू को बता सकूं कि उपयोगकर्ता उस पर क्लिक करते समय क्या करना है। मैंने नीचे दिए गए कोड का उपयोग करके प्रोग्रामिंग रूप से अपना सबमेनू बनाया है। तो अगर कोई मुझे बता सकता है कि मुझे कैसे पता चलेगा कि सबमेनू के प्रत्येक आइटम के लिए आईडी क्या है, तो मैं इसकी सराहना करता हूं।उपमेनू पर एक ऑनक्लिक जोड़ना?

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.mainmenu, menu); 

    SubMenu submenu = menu.addSubMenu(0, Menu.FIRST, Menu.NONE, "Preferences"); 
    submenu.add(0, Menu.FIRST, Menu.NONE, "Get Last 5 Packets"); 
    submenu.add(0, Menu.FIRST, Menu.NONE, "Get Last 10 Packets"); 
    submenu.add(0, Menu.FIRST, Menu.NONE, "Get Last 20 Packets"); 
    inflater.inflate(R.menu.mainmenu, submenu); 

    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    // Handle item selection 
    switch (item.getItemId()) 
    { 
     case R.id.viewKML: 
      viewKML(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

उत्तर

10

जब आप जोड़ रहे हैं

submenu.add(0, Menu.FIRST, Menu.NONE, "Get Last 5 Packets"); 

जोड़ने के लिए पैरामीटर व्यवस्था() विधि Android Menu Add Method

public abstract MenuItem add (int groupId, int itemId, int order, CharSequence title) 

Itemid अद्वितीय आइटम आईडी है। यदि आपको एक अद्वितीय आईडी की आवश्यकता नहीं है तो किसी का उपयोग न करें।

क्या आपके मेनू आइटम की आईडी है। यह अद्वितीय होना चाहिए। जैसा कि आप कहते हैं 15,20,21। यह आईडी android:id="@+id/15" की तरह कार्य करेगी। जब आप जो आइटम

क्लिक किया जाता है की जाँच करने के लिए जा रहे हैं इस्तेमाल किया जाएगा, उदा,

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.main_activity_menu, menu); 

     SubMenu submenu = menu.addSubMenu(0, Menu.FIRST, Menu.NONE, "Preferences"); 
     submenu.add(0, 10, Menu.NONE, "Get Last 5 Packets"); 
     submenu.add(0, 15, Menu.NONE, "Get Last 10 Packets"); 
     submenu.add(0, 20, Menu.NONE, "Get Last 20 Packets"); 
     inflater.inflate(R.menu.main_activity_menu, submenu); 

     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle item selection 
     switch (item.getItemId()) { 
     case 10: 
      Toast.makeText(LoginPageActivity.this, "Now "+item.getItemId(), Toast.LENGTH_SHORT).show(); 
      return true; 
     case 15: 
      Toast.makeText(LoginPageActivity.this, "Now = "+item.getItemId(), Toast.LENGTH_SHORT).show(); 
      return true; 
     case 20: 
      Toast.makeText(LoginPageActivity.this, "Now == "+item.getItemId(), Toast.LENGTH_SHORT).show(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
    } 
+0

पूरी तरह से काम किया। धन्यवाद @ अर्सलन। एक लंबी खोज के बाद यह मिला। – Diffy

+0

क्या आप सबमेनू वस्तुओं के रंग को बदलने में मेरी मदद कर सकते हैं? मैंने एबीएस के कोड की खोज की लेकिन इसे प्राप्त नहीं किया। @RandomlyKnighted? – Diffy

संबंधित मुद्दे