2011-12-22 18 views
6

पर विशिष्ट मेनू आइटम के लिए अलग दिखने/शैली मेरे एंड्रॉइड एप्लिकेशन पर मैं android developer blog और अन्य स्थानों से निम्नलिखित क्रियाओं के बाद एक्शनबार को अनुकूलित कर रहा हूं। मैं एक्शनबार पर एक विशिष्ट मेनू आइटम को हाइलाइट करने में सक्षम होना चाहता हूं उदा। एक अलग पृष्ठभूमि रंग के साथ क्योंकि यह विशेष रूप से वर्तमान में दिखाई देने वाले खंड (जो वास्तव में इसे जोड़ता है) पर लागू होता है। हालांकि मुझे कोई संकेत नहीं मिला है कि यह किया जा सकता है और न ही मैं अभी तक ऐसा करने में कामयाब रहा हूं। क्या यह संभव है? यदि हां, तो कैसे?एक्शनबार

+0

क्या आप सुनिश्चित हैं कि थोड़ा अलग आइकन का उपयोग करना आसान नहीं होगा? या अन्य अग्रभूमि परिवर्तन जो आप अपने स्वयं के कस्टम फुले हुए एक्शन व्यू या 'एक्शनप्रोवाइडर' के माध्यम से पूरा कर सकते हैं? – CommonsWare

+0

वर्तमान में ये टेक्स्ट हैं और एक आइकन को समझना मुश्किल होगा। कस्टम एक्शन व्यू या एक्शनप्रोवाइडर के संदर्भ में ... मुझे इसे देखना होगा। –

+0

यदि आप एक्शन व्यू/'एक्शनप्रोवाइडर' मार्ग पर जाते हैं, तो आप पाठ के अग्रभूमि रंग को बदल सकते हैं। दुर्भाग्यवश, एंड्रॉइड ' 'टैग का समर्थन नहीं करता है ... :-) – CommonsWare

उत्तर

12

तो मुझे अब इसे एक चाल के साथ काम करने के लिए मिला। यहाँ टुकड़ा कोड

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

    menuItemCreateCart = menu.findItem(R.id.menuItemCreateCart); 
    if (menuItemCreateCart == null) { 
     menuItemCreateCart = menu.add(0, R.id.menuItemCreateCart, 0, R.string.Create); 
    } 

    TextView tv = new TextView(getActivity()); 
    tv.setText(R.string.Create); 
    tv.setTextColor(getResources().getColor(R.color.green)); 
    tv.setBackgroundColor(getResources().getColor(R.color.lightBlue)); 
    tv.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        createCart(); 
       } 
      } 
    ); 
    menuItemCreateCart.setActionView(tv); 

मुख्य पकड़ लिया onclicklistener राय यह है कि आप इसे काम करने के लिए कार्रवाई को देखने के रूप में स्थापित है और मेनू आइटम पर स्थापित किया जाना है कि चला जाता है। इस तरह आप जो भी चाहें कर सकते हैं।

यह भी ध्यान रखें कि आप मूल रूप से सेट दृश्य को पुनर्प्राप्त करने के लिए getActionView का उपयोग नहीं कर सकते क्योंकि यह शून्य हो जाएगा। यह डिफ़ॉल्ट मेनू आइटम्स के वास्तविक दृश्य की तुलना में वैकल्पिक दृश्य से अधिक प्रतीत होता है ..

+0

मेरे लिए काम किया :) – Shivansh

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