2013-02-21 114 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; 
}