2011-08-10 27 views
11

मेरे पास Activity है जिसमें ViewFlipper है और ViewFlipper में प्रत्येक दृश्य के लिए एक अलग विकल्प मेनू दिखाना चाहते हैं। यही है, मेनू बटन दबाए जाने पर प्रदर्शित मेनू का प्रकार वर्तमान दृश्य के प्रकार पर निर्भर करेगा। हालांकि, onCreateOptionsMenu() केवल एक बार कहा जाता है (पहली बार विकल्प मेनू दिखाते समय), इसलिए विभिन्न मेनू बनाने के लिए वहां लागू नहीं किया जा सकता है। मैं इसे कैसे हल कर सकता हूं?एंड्रॉइड: एक गतिविधि में एकाधिक विकल्प मेनू

किसी भी सुझाव की सराहना की।

उत्तर

28

सबसे पहले, जबकि अपनी गतिविधियों में से एक के अंदर, onPrepareOptionsMenu विधि कहा जाता है उपयोगकर्ता अपने Android डिवाइस पर मेनू प्रेस के बारे में onPrepareOptionsMenu(Menu menu)

हर बार पढ़ें। पहली बार मेनू दिखाया गया है (यानी केवल एक बार), onCreateOptionsMenu विधि कहा जाता है।

असल में, onPrepareOptionsMenu विधि वह जगह है जहां आपको कुछ मेनू आइटम सक्षम/अक्षम करने या परिस्थितियों के आधार पर मेनू आइटम टेक्स्ट को बदलने जैसे कोई भी परिवर्तन करना चाहिए।

तो यह (का प्रयोग न करें onCreateOptionsMenu(Menu menu)) करते

//Dynamically create context Menu 
    @Override 
    public boolean onPrepareOptionsMenu(Menu menu) { 
     menu.clear(); //Clear view of previous menu 
     MenuInflater inflater = getMenuInflater(); 
     if(condition_true) 
      inflater.inflate(R.menu.menu_one, menu); 
     else 
      inflater.inflate(R.menu.menu_two, menu); 
     return super.onPrepareOptionsMenu(menu); 
    } 
संबंधित मुद्दे