带有图标的android选项菜单

时间:2013-02-21 05:48:33

标签: android

如何用选项菜单显示图标。我尝试了以下代码,但我的选项菜单没有图像图标。我正在使用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

我需要将图像显示在“添加联系人”项目的顶部。

9 个答案:

答案 0 :(得分:4)

覆盖OnPrepareOptionsMenu并从中添加图标

如果它高于3.0,请在xml中使用android:showAsAction

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

答案 1 :(得分:4)

我尝试了两行代码并且它可以工作:

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

答案 2 :(得分: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

答案 3 :(得分:3)

您可以直接将其设置为xml文件。

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

答案 4 :(得分:2)

您可以尝试遵循此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>

现在您可以在菜单上设置ICON

现在在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);
      }
   }

答案 5 :(得分:2)

要启用带有图标的“选项菜单”:

选项1

使用setOptionalIconsVisible

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    super.onCreateOptionsMenu(menu)
    menuInflater.inflate(R.menu.main, menu)

    if (menu is MenuBuilder){
        menu.setOptionalIconsVisible(true)
    }

    return true
}

选项2

ItemshowAsAction="always"Menu包裹项目:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:title="@string/title_menu"
        android:icon="@mipmap/ic_icon_menu"
        app:showAsAction="always">
        <menu>
            <item
                android:id="@+id/action1"
                android:orderInCategory="100"
                android:title="@string/action1"
                android:icon="@mipmap/ic_icon_action1"
                app:showAsAction="never" />
        </menu>
    </item>
</menu>

答案 6 :(得分:1)

如果您在清单文件中使用以下某个属性,那么它将显示您的图标....

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

这对我来说很好...... :) +1为我自己的努力...

**必须输入。

答案 7 :(得分:1)

最简单的方法是仅在设置菜单项时使用@drawable。

OR

只需将@drawable放在标题声明之前。

<?xml version="1.0" encoding="UTF-8" ?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app    ="http://schemas.android.com/apk/res-auto">
<item
  android:id      ="@+id/addToFavorites"
  android:icon = "@drawable/ic_favorite_border_white_24dp"
  android:title = "Hello"
  app:showAsAction="always" />
<item
  android:id      ="@+id/about"
  android:title   ="About"
  app:showAsAction="never" />
</menu>  

答案 8 :(得分:0)

问题是Androidmanifest.xml。 删除android:theme="@style/AppTheme",它会正常工作