मेरे पास एक्शनबार और टैब नेविगेशन के साथ एक गतिविधि है। मैं विभाजन मोड का उपयोग कर रहा हूं, इसलिए टैब शीर्ष पर हैं और क्रियाएं नीचे की पट्टी में हैं। मैं नीचे की कार्रवाइयों को गतिशील रूप से कैसे बदल सकता हूं? मुझे इसकी आवश्यकता है क्योंकि प्रत्येक टैब में अलग-अलग क्रियाएं होती हैं।मैं एक्शन बार क्रियाओं को गतिशील रूप से कैसे बदल सकता हूं?
उत्तर
चूंकि क्रियाएं गतिविधि के विकल्प मेनू द्वारा पॉप्युलेट की जाती हैं, इसलिए आप Activity#invalidateOptionsMenu()
का उपयोग कर सकते हैं। यह वर्तमान मेनू को डंप करेगा और इसे फिर से बनाने के लिए आपकी गतिविधि के onCreateOptionsMenu
/onPrepareOptionsMenu
विधियों को कॉल करेगा।
यदि आप अपने खंड विन्यास को बदलने के लिए एक्शन बार टैब का उपयोग कर रहे हैं तो बेहतर तरीका है। प्रत्येक टुकड़ा मेनू के अपने हिस्से का प्रबंधन करें। इन टुकड़ों को setHasOptionsMenu(true)
पर कॉल करना चाहिए। जब विकल्प मेनू आइटम वाले टुकड़े जोड़े जाते हैं या हटा दिए जाते हैं तो सिस्टम स्वचालित रूप से विकल्प मेनू को अमान्य कर देगा और गतिविधि के अतिरिक्त प्रत्येक खंड के onCreateOptionsMenu
/onPrepareOptionsMenu
विधियों को कॉल करेगा। इस तरह प्रत्येक टुकड़ा अपनी वस्तुओं का प्रबंधन कर सकता है और आपको हाथ से मेनू स्विचिंग करने की चिंता करने की आवश्यकता नहीं है।
ActionMode.invalidate() चाल थी। इसने फिर से बुलाए जाने के लिए onPrepareActionMode()
का कारण बना दिया।
Activity#invalidateOptionsMenu()
जब बहु-चयन के साथ सूची आइटम का उपयोग कर नहीं कारण onPrepareActionMode()
लागू किया जा करने के लिए किया था।
शुरू में मेनू MenuItem जोड़े लेकिन इसके दृश्यताको गलत सेट:
पर कॉल करें, मैं एक्शनमोड कैसे प्राप्त करूं? मेरे पास केवल एक्शनबार – eugene
है एक्शनमोड PrepareActionMode (...) में पहला पैरामीटर है: http: // goo।gl/tMyBx –
मैंने कभी भी PrepareAction –
Activity.invalidateOptionsMenu() एपीआई स्तर 11. वहाँ एक सरल समाधान जो पीछे की ओर संगत है है की आवश्यकता है। सच जब वांछित, MenuItem.setVisible()
धन्यवाद। बस मामले में दूसरों की मदद करता है ... 'मेनू Item refreshItem = menu.findItem (R.id.action_refresh) रखें; ताज़ा करें Item.setVisible (झूठा); 'आपके' ऑन क्रिएटऑप्शनमेनू ' – AlvaroSantisteban
@AlvaroSantisteban या '" एंड्रॉइड: दृश्यमान "=" झूठी "xml में –
Activity.invalidateOptionsMenu()
उपयोग करने के लिए दृश्यता सेट एपीआई स्तर 11. उपयोग यह supportInvalidateOptionsMenu() का समर्थन पुस्तकालय संस्करण की आवश्यकता है।
AppCompatActivity activity = (AppCompatActivity) getActivity();
activity.supportInvalidateOptionsMenu();
- 1. वर्डप्रेस में मैं एक्शन प्राथमिकता कैसे बदल सकता हूं?
- 2. मैं वस्तु को गतिशील रूप से कैसे डाल सकता हूं?
- 3. तीन.जेएस - मैं वस्तु की अस्पष्टता को गतिशील रूप से कैसे बदल सकता हूं?
- 4. मैं ग्रिडव्यू टेम्पलेट कॉलम क्रम को गतिशील रूप से कैसे बदल सकता हूं?
- 5. क्या मैं गतिशील रूप से एक नेस्टेड मास्टर पेज के मास्टर को बदल सकता हूं?
- 6. मैं jquery ui स्लाइडर के लिए न्यूनतम, अधिकतम मान कैसे गतिशील रूप से बदल सकता हूं?
- 7. मैं गतिशील रूप से फ़ंक्शन कैसे बना सकता हूं?
- 8. मैं चींटी को मैवेन से कैसे बदल सकता हूं?
- 9. गतिशील रूप से CreateParams बदल रहा है?
- 10. मैं सिंक को एक सिंक में कैसे बदल सकता हूं?
- 11. क्या मैं गतिशील रूप से UITextField की संपत्ति UIReturnKeyType बदल सकता हूं?
- 12. स्वीकृत HTTP क्रियाओं के आधार पर मैं एएसपी.नेट एमवीसी क्रियाओं को कैसे अधिभारित कर सकता हूं?
- 13. एंड्रॉइड एक्शन बार
- 14. मैं UIImageView को अपनी छवि को प्रोग्रामेटिक रूप से कैसे बदल सकता हूं?
- 15. एक्शन बार
- 16. रूबी पर रूबी के सभी मॉडलों के लिए मैं सक्रिय रिकॉर्ड डेटाबेस को गतिशील रूप से कैसे बदल सकता हूं?
- 17. मैं बिना किसी प्रतिकृति के .NET में वेब सेवा पतों को गतिशील रूप से कैसे बदल सकता हूं?
- 18. एक्शन बार
- 19. मैं ग्रहण विषय कैसे बदल सकता हूं?
- 20. मैं एसवीजी सामग्री को कैसे हटा या बदल सकता हूं?
- 21. मैं अपना फॉर्म कैसे आसानी से आकार बदल सकता हूं?
- 22. एक्शन बार शेरलॉक को "इंस्टॉल" कैसे करें?
- 23. मैं क्यों प्राप्त कर रहा हूं गतिशील रूप से गैर-गतिशील var को बांध नहीं सकता?
- 24. मास्टरपेज गतिशील रूप से
- 25. एक्शन बार
- 26. मैं JSONArject को JSONObject में कैसे बदल सकता हूं?
- 27. वर्चुअलएन्व को सक्रिय/निष्क्रिय करने पर मैं अपने PYTHONPATH को स्वचालित रूप से बदल सकता हूं?
- 28. मैं रूबी को लुआ में कैसे बदल सकता हूं?
- 29. विजुअल स्टूडियो 2008 - क्या मैं डिफ़ॉल्ट रूप से "संदर्भ जोड़ने" टैब को बदल सकता हूं?
- 30. मैं एक्सकोड में गतिशील लाइब्रेरी को कैसे जोड़ सकता हूं?
बस एक ध्यान दें: setHasOptionsMenu() के लिए [प्रलेखन] अनुसार onCreate में बुलाया जाना चाहिए (http://developer.android.com/guide/topics/fundamentals/fragments.html#ActionBar)। – Dave
यह वास्तव में एक आवश्यकता नहीं है। इसे वहां से बुलाया जा सकता है और यह कई परिस्थितियों में ऐसा करने के लिए एक अच्छी जगह है, लेकिन यदि टुकड़ा पहले ही जोड़ा जा चुका है और छुपा नहीं गया है तो गतिविधि के विकल्प मेनू को अमान्य कर दिया जाएगा और नया राज्य दिखाई देगा। – adamp
मैं आपसे सहमत हूं, हालांकि दस्तावेज इसे ऐसा नहीं बनाते हैं। "इस विधि को कॉल प्राप्त करने के लिए, हालांकि, आपको setHasOptionsMenu() को ऑनक्रेट() ... के दौरान कॉल करना होगा। मुझे लगता है कि उनका मतलब है कि आपको setHasOptionsMenu() को कॉल करना होगा, लेकिन वे अनजाने में इसे बनाने के दौरान ध्वनि बनाते हैं() भी एक आवश्यकता थी। – Dave