19

如何使用选项菜单显示图标。我尝试了以下代码,但我的选项菜单没有图像图标。我正在使用 android 4.0 版开发应用程序。

Java代码

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

            return true;
        }

以下是我的应用程序的屏幕截图

在此处输入图像描述

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

4

9 回答 9

4

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

public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        menu.add("Add Contacts");
        menu.getItem(0).setIcon(R.drawable.ic_launcher);
        return true;
}
于 2014-01-27T17:57:50.843 回答
4

也从那里覆盖OnPrepareOptionsMenu并添加图标

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

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

于 2013-06-17T01:39:06.620 回答
3

You can create a custom menu like this:

<?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>

And then inflate it

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

More on this here: http://developer.android.com/guide/topics/ui/menus.html#options-menu

于 2013-02-21T06:04:53.937 回答
3

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

  <item android:id="@+id/add_contacts"
  android:icon="@android:drawable/plus_icon"
  android:title="Add Contacts"/>
于 2013-02-21T06:07:12.040 回答
2

您可以尝试关注此链接

检查一下并告诉我它是否有效。

或者你可以做一些这样的事情。
创建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);
      }
   }
于 2013-02-21T06:21:21.137 回答
2

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

Item用withshowAsAction="always"和 a包裹 Items 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>
于 2019-10-07T22:03:18.523 回答
1

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

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

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

**必须输入。

于 2013-03-08T06:59:23.007 回答
1

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

或者

只需将 @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>  
于 2018-10-11T17:12:20.297 回答
-1

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

于 2013-12-13T19:27:44.040 回答