簡體   English   中英

帶圖標的android選項菜單

[英]android option menu with icon

如何使用選項菜單顯示圖標。我嘗試了以下代碼,但我的選項菜單沒有圖像圖標。我正在使用 android 4.0 版開發應用程序。

Java代碼

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

            return true;
        }

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

在此處輸入圖片說明

我需要圖像顯示在“添加聯系人”項目的頂部。

覆蓋OnPrepareOptionsMenu並從那里添加圖標

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

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

我在兩行中嘗試了代碼並且它有效:

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

您可以像這樣創建自定義菜單:

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

您可以直接將其設置到xml文件中。

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

您可以嘗試關注此鏈接

檢查這個並告訴我它是否有效。

或者你可以做一些這樣的事情。
創建 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);
      }
   }

啟用帶圖標的選項菜單:

包裹物品與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>

如果您在清單文件中使用以下屬性,那么它將顯示您的圖標....

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

這對我來說很好用......:) +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>  

問題是 Androidmanifest.xml。 刪除android:theme="@style/AppTheme"就可以了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM