2011-11-18 10 views
14

क्या विशेष रूप से मेनू के लिए एंड्रॉइड में एक्सएमएल संसाधनों का उत्तराधिकारी और विस्तार करना संभव है।एक्सएमएल (मेनू) संसाधनों का विरासत और विस्तार

उदाहरण के लिए

। अगर मेरे base_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:id="@+id/item_manual_input" 
     android:title="@string/manual_input/"> 

    <item android:id="@+id/item_logoff" 
     android:title="@string/logoff"/> 

</menu> 

दोनों विकल्प है मैं कहीं और (एक और गतिविधि में) का पुन: उपयोग करना चाहते हैं। बजाय base_menu में आइटम के लिए टैग दोहराने की, मैं बहुत ज्यादा inheriting_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <menu android:id="@id/base_menu"/> 

    <item android:id="@+id/extra_option" 
     android:title="@string/extra_option/> 

</menu> 

के लिए कुछ इस तरह करना चाहते हैं, लेकिन मैं किसी भी दस्तावेज में इस के समान कुछ भी नहीं दिख रहा है। क्या इस तरह कुछ भी समर्थित है, या मैं विभिन्न एक्सएमएल संसाधनों के लिए कोड और एक्सएमएल प्रतिकृति को सीमित करने के लिए टुकड़ों का उपयोग करके अटक गया हूं? (मेरा मानना ​​है कि यह काम करेगा, लेकिन मैं अभी तक टुकड़े इस्तेमाल नहीं किया है)

उत्तर

19
नहीं

संभव मेनू लेकिन साध्य लेआउट के लिए के लिए। https://developer.android.com/training/improving-layouts/reusing-layouts.html

मेनू के लिए::

@Override public boolean onCreateOptionsMenu(Menu menu) 
{ 
    getMenuInflater().inflate(R.menu.base, menu); // All menus in base.xml 
    getMenuInflater().inflate(R.menu.extras, menu); // base.xml + extras.xml 
    menu.add("More"); // base.xml + extras.xml + "More" 
    return true; 
} 
+1

शामिल एक बहुत शक्तिशाली उपकरण हैं, और शायद:
आप मेनू एक्सएमएल फ़ाइलें बढ़ा-चढ़ाकर और एकल मेनू आइटम जोड़कर कोड में काम कर सकते हैं
include टैग देखें कई एंड्रॉइड डेवलपर्स द्वारा अंतर्निहित। प्रोग्रामेटिक वर्कअराउंड एक अतिरिक्त परत के लिए काम करता है, लेकिन उससे परे, हम अभी भी अटक गए हैं। वर्ग विरासत की तरह पूरी तरह से फीचर्ड विरासत अद्भुत होगी, लेकिन मुझे लगता है कि कई ऐप्स वास्तव में इसका उपयोग नहीं करते हैं। वहां कोई अच्छा विकल्प नहीं है जो मैंने देखा है कि एक ओओपी सिद्धांत या अन्य –

+4

का उल्लंघन नहीं करता है ऊपर दिया गया लिंक मर चुका है लेकिन मुझे यह मिला [यहां] (http://developer.android.com/training/improving- लेआउट/पुन: उपयोग-layouts.html)। रोमैन गाय द्वारा यहां एक और समान दिलचस्प लेख है: [http://android-developers.blogspot.co.uk/2009/02/android-layout-tricks-2-reusing-layouts.html ](http://android -developers.blogspot.co.uk/2009/02/android-layout-tricks-2-reusing-layouts.html)। उम्मीद है कि यह किसी की मदद करता है। –

+0

वाह, मेरे पास कोई संकेत नहीं था कि आप अलग-अलग मेनू के साथ एक से अधिक बार फुला सकते हैं, इसे साझा करने के लिए धन्यवाद – Parker

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