2010-09-09 25 views
8

समस्या यह है कि मेनू बटन दबाए जाने पर निम्न विधि को एक बार बुलाया जाता है:गतिशील विकल्प मेनू कैसे बनाएं?

public boolean onCreateOptionsMenu(Menu menu) 

कुछ विकल्प बदलने, कुछ विकल्प अक्षम करने आदि के लिए मैं बाद में मेनू को फिर से कैसे बना सकता हूं?

उत्तर

22

अवहेलना इस onPrepareOptionsMenu (मेनू मेनू)

@Override 
    public boolean onPrepareOptionsMenu(Menu menu) { 

     MenuItem item = menu.findItem(R.id.refresh); 

     if (item != null) { 
     item.setVisible (shouldIShowThisItem) 
     } 
} 
+0

यह बहुत अच्छा काम करता है। किसी और को यह करने के लिए, इससे पहले कि आप मेनू आइटम को ऑनपेरऑप्शनमेनू में बदल सकें, आपको मौजूदा सामान को साफ़ करने के लिए मेनू.क्लर() करने की आवश्यकता है। – pcm2a

+0

यदि आप केवल मौजूदा आइटम बदल रहे हैं तो आपको मेनू को साफ़ करने की आवश्यकता नहीं है। यदि आप एक पूरी तरह से नए मेनू को पुन: उत्पन्न या पुन: उत्पन्न कर रहे हैं तो आप चाह सकते हैं। – adamp

+0

मैं मेनू आइटम को साफ़ करने और इसे पुनर्निर्माण के बिना बदलने में असमर्थ था। मैंने menu.getPositon() के साथ एक अलग आइटम प्राप्त करने का प्रयास किया लेकिन जब मैंने शीर्षक बदल दिया तो मेनू में परिवर्तन दिखाई नहीं दे रहे थे। – pcm2a

0
invalidateOptionsMenu(); 

अगर आप मेनू परिवर्तन इस का उपयोग पुश करने के लिए चाहते हैं।

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