2012-01-18 36 views
16

प्रदर्शित नहीं करेगा मैं अपने पहले असली ऐप को लिखना शुरू करने के लिए एंड्रॉइड डेवलपमेंट पर एक पुस्तक का अनुसरण कर रहा हूं। मैं उस बिंदु तक पहुंच गया जहां मैं अपनी गतिविधियों में से एक के लिए एक विकल्प मेनू बना रहा हूं। मेनू दिखाता है, लेकिन मेनू आइटम का संबंधित आइकन प्रदर्शित करने से इंकार कर देता है। यहाँ मेनू के लिए कोड है:एंड्रॉइड विकल्प मेनू आइकन

ReminderListActivity

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 
     MenuInflater mi = getMenuInflater(); 
     mi.inflate(R.menu.list_menu, menu); 
     return true; 
    } 

रेस/मेनू/list_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/menu_insert" 
     android:icon="@drawable/menu_add" 
     android:title="@string/menu_insert" /> 

</menu> 

मैं ic_menu_add.png आइकन (32x32px) की नकल की है मेरे एंड्रॉइड एसडीके उपफोल्डर्स में से एक से मेरे res/drawable-mdpi फ़ोल्डर में और फ़ाइल को menu_add.png में बदल दिया गया। मैंने ग्रहण के भीतर फ़ोल्डर को रीफ्रेश किया ताकि आइकन दिखाया जा सके, और जैसा कि आप देख सकते हैं कि मैंने इसे अपनी लेआउट फ़ाइल में मेनू आइटम के आइकन के रूप में सेट किया है। मैंने अपनी परियोजना को एमुलेटर में कुछ बार चलाने की कोशिश की, लेकिन आइकन कभी दिखाई नहीं देता है। रिकॉर्ड के लिए, मैं एंड्रॉइड 4.0.3 का उपयोग कर रहा हूं ..

कोई विचार?

+0

आप घनत्व कम फ़ोल्डर में आइकन डाल करने के लिए प्रयास कर सकते हैं में मेरे लिए काम कर रहा है? मुझे लगता है कि इसका आपके कोड से कोई लेना देना नहीं है। यह ग्रहण में एक गड़बड़ हो सकता है। – iTurki

+0

घनत्व-कम फ़ोल्डर द्वारा आपका क्या मतलब है? केवल ldpi, mdpi और hdpi drawables फ़ोल्डर्स हैं, नहीं? मैंने आइकन को सभी फ़ोल्डरों में डालने का प्रयास किया, लेकिन इससे इसे ठीक नहीं किया। – Jort

+1

एक फ़ोल्डर जोड़ें और इसे 'drawable' नाम दें और उसके बाद आइकन डालें। अगर यह काम नहीं करता है, तो प्रत्येक फ़ोल्डर पर आइकन डुप्लिकेट करने का प्रयास करें। प्रोजेक्ट को रीफ्रेश करना न भूलें और परीक्षण करने से पहले इसे साफ़ करें। – iTurki

उत्तर

28

एंड्रॉइड 3.0+ पर, विकल्प मेनू (एक्शन बार में एक स्पिलोवर मेनू) के लिए पसंदीदा दृष्टिकोण आइकन नहीं दिखाएगा। यदि आपके पास android:targetSdkVersion="11" या उच्चतर है, तो आइकन Android 3.0+ पर मेनू में कभी दिखाई नहीं देंगे। यदि आप टूलबार बटन होने के लिए विकल्प मेनू आइटम को बढ़ावा देते हैं, तो आइकन दिखाए जाएंगे, और आइकन एंड्रॉइड 1.x/2.x डिवाइस पर दिखाई देंगे।

+0

उत्तर के लिए धन्यवाद, मुझे संदेह था कि एंड्रॉइड की सेटिंग्स के साथ इसका कुछ संबंध था। क्या मैं बस अपने विकल्प मेनू आइटम को टूलबार बटन में बदल सकता हूं या क्या मुझे अपने पूरे विकल्प मेनू को टूलबार में बदलने की ज़रूरत है? – Jort

+0

@Jort: मुख्य रूप से, आपको आइकन के बारे में चिंता करना बंद कर देना चाहिए। टूलबार बटन के रूप में एक्शन बार में विकल्प मेनू आइटम को स्थानांतरित करने के लिए 'android: showAsAction' का उपयोग करने के लिए आपका स्वागत है। – CommonsWare

+0

स्पष्टीकरण के लिए धन्यवाद। जिस पुस्तक पर मैं एटीएम का अनुसरण कर रहा हूं वह एंड्रॉइड 2.2 के लिए ऐप्स लिखने पर केंद्रित है, यही कारण है कि मैं अपने आइकनों को दिखाने की कोशिश में इतनी लगातार थी। मैंने अभी तक एक्शन बार का उपयोग नहीं किया है, लेकिन अब मैं समझता हूं कि एंड्रॉइड के नए संस्करणों में यूआई कैसे बदल गया। उपयोगी सलाह के लिए फिर से धन्यवाद :) – Jort

0

एक अच्छा विचार यह है कि आपने RelativeLayout के साथ एक लेआउट बनाया है और जब उपयोगकर्ता ने आपका मेनू चुना है, तो आपका लेआउट प्रदर्शित होता है।

5

यह पूरी तरह से एपीआई 23

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context=".MainActivity"> 
<item 
    android:icon="@drawable/ic_menu" 
    android:orderInCategory="100" 
    android:title="Option Menu" 
    app:showAsAction="always"> 
    <menu> 
     <item 
      android:id="@+id/action_myorder" 
      android:icon="@drawable/ic_order" 
      android:title="My Order" /> 
     <item 
      android:id="@+id/action_myaccount" 
      android:icon="@drawable/ic_account" 
      android:title="My Account" /> 
     <item 
      android:id="@+id/action_share" 
      android:icon="@drawable/ic_share" 
      android:title="Share" /> 
     <item 
      android:id="@+id/action_term_condition" 
      android:icon="@drawable/ic_terms" 
      android:title="Term and Conditions" /> 
     <item 
      android:id="@+id/action_logout" 
      android:icon="@drawable/ic_logout" 
      android:title="Logout" /> 
    </menu> 
</item> 

+0

महान! बस जानना चाहते हैं कि एंड्रॉइड का क्या उपयोग है: orderInCategory = "100" – Abhijit

+0

यदि श्रेणी 0 के लिए मान है तो खंड पर ऊपर बहने वाला मेनू grater है तो यह खंड के नीचे 0 है। –

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