2013-03-15 7 views
5

मेरे ऐप में मेरे पास एक गतिविधि है जो दो टुकड़े होस्ट करती है। यदि मैं मेनू में मेनूइटम जोड़ता हूं तो क्या मैं इसे अपने टुकड़ों में पुनः प्राप्त कर सकता हूं? अपने बच्चे के टुकड़ों में गतिविधि और OptionMenu में OptionMenu के बीच क्या लिंक है?एंड्रॉइड: गतिविधि और टुकड़ों के बीच OptionMenu

+0

क्या टुकड़े में मेनू इटिम को पुनर्प्राप्त करना चाहते हैं? आम तौर पर आप केवल टुकड़ों से मेनू में जोड़ना चाहते हैं और यह केवल टुकड़े में क्रिएटऑप्शनमेनू पर ओवरराइड करने का मामला है और सेट ऑनसैट्समेनू (सच्चाई) को उनके ऑनक्रेट विधि –

उत्तर

5

को true के साथ true पर कॉल करने के लिए आपको तर्क दिया गया है, तो आप क्रेट विकल्प मेनू पर ओवरराइड कर सकते हैं।

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Enable the option menu for the Fragment 
    setHasOptionsMenu(true); 
} 

क्या आप दो अलग अलग मेनू xml फ़ाइल को परिभाषित करने और उन्हें onCreateOptionsMenu

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 

    inflater.inflate(R.menu.fragment1_menu, menu); 


} 
+2

में दिखाता है यह 2 मेनू दिखाता है .. 1 मेरी गतिविधि से और 1 खंड में। क्या आप जानते हैं कि गतिविधि मेनू को कैसे छुपाएं। जो मेरे पास सभी टुकड़ों में है – djk

+2

मुझे लगता है कि इससे बचने के लिए आपको अपनी गतिविधि में मेनू को फुलाया नहीं जाना चाहिए। –

+0

मेनू सेट करने का प्रयास करें .removeItem (R.id.parentMenuItem); पुनरावृत्ति से बचने के लिए खंड में –

0

में बढ़ जाएगा आप टुकड़े उप में गतिविधि के मेनू की घटना को नहीं पकड़ सकते प्रत्येक खंड के लिए अलग अलग विकल्प में करना चाहते हैं । इसके बजाय, आप अपने टुकड़े MenuItem.OnMenuItemClickListener जैसे कुछ कार्यान्वित कर सकते हैं। और आपकी गतिविधि की onOptionsItemSelected(MenuItem item) विधि में, आप बस YourFragment पर कॉल करें। onMenuItemClick()

0

मुझे पता चला कि मैं उनके आईडी द्वारा गतिविधि onCreateOptionsMenu() में MenuItem जोड़ सकते हैं और फिर उन्हें पुनः प्राप्त Fragment रों में, इस तरह:

गतिविधि:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    itemId= 0; 
    menu.add(0, itemId, 0, "item"); 
    return super.onCreateOptionsMenu(menu); 
} 

टुकड़ा:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    itemId= 0 
    MenuItem menuItem= menu.findItem(itemId);       
} 
+1

नहीं, अभी भी काम नहीं कर रहा है .. –

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