2013-02-21 141 views
13

如何顯示帶選項菜單的圖標。我嘗試了以下代碼,但我的選項菜單沒有圖像icon.I使用Android 4.0版開發應用程序。安卓選項菜單帶圖標

Java代碼

public boolean onCreateOptionsMenu(Menu menu) { 
      super.onCreateOptionsMenu(menu); 
      menu.add("Add Contacts").setIcon(
        R.drawable.ic_launcher); 

      return true; 
     } 

以下是我的應用程序的屏幕截圖

enter image description here

我需要的圖像上的 「添加聯繫人」 項的頂部顯示。

+0

它是一個很好的問題。太糟糕了,它沒有答案。這些方法都不起作用。 – 2017-03-26 11:00:14

回答

3

您可以創建一個自定義菜單是這樣的:

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

然後它充氣

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

更多關於此這裏: http://developer.android.com/guide/topics/ui/menus.html#options-menu

+1

我試過這個,但圖像不來。 – sonia 2013-02-21 06:14:05

+0

http://stackoverflow.com/questions/8306943/android-menu-icons-are-not-displaying-when-the-api-level-is-above-10 – nedaRM 2013-02-21 06:37:40

3

您可以直接設置該到XML文件。

<item android:id="@+id/add_contacts" 
    android:icon="@android:drawable/plus_icon" 
    android:title="Add Contacts"/> 
1

您可以嘗試關注此Link

檢查一下,並告訴我它是否有效。

或者你可以做一些這樣的事情。
創建menu.xml文件

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:id="@+id/next" 
       android:icon="@drawable/ic_next" 
       android:title="@string/next" /> 
     <item android:id="@+id/previous" 
      android:icon="@drawable/ic_previous" 
      android:title="@string/previous" /> 
     <item android:id="@+id/list" 
      android:icon="@drawable/ic_list" 
      android:title="@string/list" /> 
</menu> 

現在,你將能夠在CreateOptionMenu

public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return true; 
    } 

菜單

上設置的圖標會並訪問該菜單。

public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case R.id.next: 
      Toast.makeText(this, "You have chosen the " + getResources().getString(R.string.next) + " menu option", 
         Toast.LENGTH_SHORT).show(); 
      return true; 
     … 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
    } 
+2

再次顯示相同的圖標。 – sonia 2013-02-21 06:30:07

+0

Ohk然後你可以通過創建menu.xml文件來嘗試,你可以設置菜單項目,並在其中設置ICON。 – 2013-02-21 06:32:33

+0

檢查我編輯了答案的代碼。如果它有效或不讓我知道。 – 2013-02-21 06:37:50

1

如果使用清單文件的一些屬性如下然後它會顯示你的圖標....

<activity android:name=".ui.CategoryActivity" 
     android:label="@string/app_name" 
     **android:theme="@android:style/Theme.NoTitleBar"**></activity> 

這對我的工作很好... :) +1爲我自己努力...

**必須輸入。

3

覆蓋OnPrepareOptionsMenu,並從那裏過

添加圖標,如果它上面3.0,在XML使用android:showAsAction

例如。 android:showAsAction="ifRoom|withText"

0

問題是Androidmanifest.xml。 刪除android:theme="@style/AppTheme",它會工作得很好

2

我試過兩行代碼,它的工作原理:

public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 
     menu.add("Add Contacts"); 
     menu.getItem(0).setIcon(R.drawable.ic_launcher); 
     return true; 
}