2013-12-12 59 views
0

請參閱我創建了menu.xml文件文件下,這是我一直在水庫>菜單 - >文件夾無法顯示在Android應用程序菜單圖標

<item android:id="@+id/menu_About" 
     android:icon="@drawable/icon_about" 
     android:title="@string/About" /> 

<item android:id="@+id/menu_Settings" 
     android:icon="@drawable/icon_settings" 
     android:title="@string/Settings" /> 

<item android:id="@+id/menu_Exit" 
     android:icon="@drawable/icon_exit" 
     android:title="@string/Exit" /> 

我有在res-> drawable-hdpi,drawable-ldpi,drawable-mdpi,drawable-xhdpi,drawable-xxhdpi文件夾下保留了icon_about.png,icon_settings.png,icon_exit.png文件,但是當我的應用程序運行時,這些圖標不顯示向上。請告訴我,如果我錯過了什麼。

謝謝

回答

0

檢查您是否使用了正確尺寸的圖標。對於選項菜單中選擇所需尺寸

ldpi 32 x 32 px 
mdpi: 36 x 36 px 
hdpi: 48 x 48 px 
xhdpi: 64 x 64 px 
+0

是的,這與ShowAsAction一起也需要。謝謝 – Ravneet

1

嘗試在活動使用:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    Inflate the menu; // this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu);  
    return true;  
} 
+0

這是問題,它應該在評論 –

+0

@Williams:這不是一個問題,而是解決方案的建議。所以,這對我來說很好。 – lpapp

+0

IMO,它應該在評論 –

0

我遵守了icon_about.png,icon_settings.png,icon_exit.png下水庫 文件 - > drawable-hdpi,drawable-ldpi,drawable-mdpi, drawable-xhdpi,drawable-xxhdpi文件夾但是當我的應用程序運行時,這些圖標不會顯示出來。請告訴我,如果我錯過了什麼。

=>您沒有在所有菜單項中包含android:showAsAction屬性。

+1

這是missing.Thanks我的圖標現在顯示出來。 – Ravneet

+0

@ user3060037如果這有助於你按照SO規則,你應該接受/ upvote答案。乾杯! –

0

打開您的主要Activity類文件並鍵入以下代碼。在下面的代碼中,每個菜單項在switch case語句中都由它的ID標識。

public class MenusActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 

    // Initiating Menu XML file (menu.xml) 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     MenuInflater menuInflater = getMenuInflater(); 
     menuInflater.inflate(R.layout.menu, menu); 
     return true; 
    } 

    /** 
    * Event Handling for Individual menu item selected 
    * Identify single menu item by it's id 
    * */ 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) 
    { 

     switch (item.getItemId()) 
     { 
     case R.id.menu_About: 

      Toast.makeText(MenusActivity.this, "about is Selected", Toast.LENGTH_SHORT).show(); 
      return true; 

     case R.id.menu_settings: 
      Toast.makeText(MenusActivity.this, "settings is Selected", Toast.LENGTH_SHORT).show(); 
      return true; 


     case R.id.menu_Exit: 
      Toast.makeText(MenusActivity.this, "Exit is Selected", Toast.LENGTH_SHORT).show(); 
      return true; 



     default: 
      return super.onOptionsItemSelected(item); 
     } 
    }  

} 

。最後通過右鍵點擊你的項目來運行你的項目。在Android模擬器上點擊菜單按鈕來啓動菜單。

+1

我已經有這個代碼寫在MainActivity類中。菜單選項正常工作,因爲當我選擇關於菜單選項時,會顯示一條消息「about is selected」。這是我沒有出現的圖標。 – Ravneet

0
<item 
    android:id="@+id/web_link" 
    android:icon="@drawable/menu_About" 
    android:orderInCategory="100" 
    android:showAsAction="always" 
    android:title="Web link"/> 

如果你想要總是......其他選項,你必須添加android:showAsAction =「always」。像「永不」,如果你希望它們可以以編程方式添加,則永遠不會顯示圖標;如果有其他地方,則會出現其他「ifroom」菜單項將出現

+0

謝謝。該解決方案爲我工作。 – Ravneet

相關問題