2015-11-20 75 views
-3

我想在選項菜單中顯示圖標。我嘗試了很多方法,但我找不到成功。在我的工具欄中已經放置了一些圖標,但我想在我的選項菜單中選擇圖標。 我想下同圖像: -如何在android中顯示帶菜單的圖標

enter image description here

我menu.xml文件: -

<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".MainActivity"> 


<item 
     android:id="@+id/action_search" 
     android:title="@string/action_search" 
     android:orderInCategory="1" 
     android:icon="@drawable/search" 
     app:showAsAction="ifRoom" /> 

    <item 
     android:id="@+id/action_cart" 
     android:title="@string/action_search" 
     android:orderInCategory="2" 
     android:icon="@drawable/shoppingcart" 
     android:actionLayout="@layout/feed_update_count" 
     app:showAsAction="ifRoom" /> 

    <item 
    android:id="@+id/menu_overflow" 
    android:title="@string/my_cart" 
    android:icon="@drawable/ic" 
    android:orderInCategory="11111" 
    app:showAsAction="always"> 

     <menu> 


    <item 
     android:id="@+id/login" 
     android:title="@string/login" 
     android:orderInCategory="1" 
     android:icon="@drawable/account" 
     app:showAsAction="always|withText"/> 

    <item 
     android:id="@+id/my_order" 
     android:title="@string/my_order" 
     android:orderInCategory="2" 
     android:icon="@drawable/track" 
     app:showAsAction="withText"/> 

    <item 
     android:id="@+id/wishlist" 
     android:title="@string/wishlist" 
     android:orderInCategory="3" 
     android:icon="@drawable/wishlist" 
     app:showAsAction="withText"/> 

     </menu> 
    </item> 



</menu> 

我在開發Android任何新能幫助我如何顯示選項菜單圖標。提前致謝!

+0

的可能的複製[菜單圖標不顯示在andrid](http://stackoverflow.com/questions/33801485/menu-icon-is-not-showing-in-andrid) –

回答

2

默認情況下,溢出菜單將禁用圖標,只顯示文本,您需要一些解決方法。

1路

您可以通過添加以下代碼到你的類

@Override 
public boolean onMenuOpened(int featureId, Menu menu) 
{ 
    if(featureId == Window.FEATURE_ACTION_BAR && menu != null){ 
     if(menu.getClass().getSimpleName().equals("MenuBuilder")){ 
      try{ 
       Method m = menu.getClass().getDeclaredMethod(
        "setOptionalIconsVisible", Boolean.TYPE); 
       m.setAccessible(true); 
       m.invoke(menu, true); 
      } 
      catch(NoSuchMethodException e){ 
       Log.e(TAG, "onMenuOpened", e); 
      } 
      catch(Exception e){ 
       throw new RuntimeException(e); 
      } 
     } 
    } 
    return super.onMenuOpened(featureId, menu); 
} 

第二方式

創建自己的溢出項目和嵌套的菜單來顯示啓用圖標和文字。

例,

<item 
    android:id="@+id/overflow" 
    android:icon="@drawable/ic_overflow_white" 
    android:orderInCategory="201" 
    android:title="@string/overflow" 
    app:showAsAction="always"> 

     <menu> 
      <item 
       android:id="@+id/cab_menu_select_all" 
       android:icon="@drawable/ic_select_all_grey" 
       android:orderInCategory="100" 
       android:title="@string/cab_menu_select_all" 
       app:showAsAction="always|withText"></item> 
     </menu> 

</item> 
+0

沒有圖標顯示。 –

+0

@AnandJain我已經更新了我的答案,退房第二種方式 –

+0

這項工作但是在主項目圖標上也顯示三個白色點沒有顯示。 –

0

試試這個代碼,它爲你的作品

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<item 
android:id="@+id/action_search" 
android:icon="@drawable/ic_action_search" 
android:showAsAction="always" 
android:title="@string/action_search"/> 
<!-- Settings, should always be in the overflow --> 
<item 
android:id="@+id/action_location_found" 
android:icon="@drawable/ic_action_location_found" 
android:showAsAction="always" 
android:title="@string/action_location_found"/> 
<item 
android:id="@+id/menu_overflow" 
android:icon="@drawable/ic_action_menu" 
android:orderInCategory="11111" 
android:showAsAction="always"> 
<menu> 
<!-- Refresh --> 
<item 
android:id="@+id/action_refresh" 
android:icon="@drawable/ic_action_refresh" 
android:showAsAction="ifRoom" 
android:title="@string/action_refresh"/> 
<!-- Help --> 
<item 
android:id="@+id/action_help" 
android:icon="@drawable/ic_action_help" 
android:showAsAction="never" 
android:title="@string/action_help"/> 
<!-- Check updates --> 
<item 
android:id="@+id/action_check_updates" 
android:icon="@drawable/ic_action_refresh" 
android:showAsAction="never" 
android:title="@string/action_check_updates"/> 
</menu> 
</item> 
</menu> 
- See more at: http://www.theappguruz.com/blog/android-working-android-actionbar#sthash.ArNQTEBF.dpuf 
0

創建您的菜單XML作爲跟隨

<item 
    android:id="@+id/menu_item_action_parameters" 
    android:title="@string/text_parameters" 
    android:icon="@drawable/ic_menu_parameter" 
    app:showAsAction="ifRoom|withText"/> > 
    <menu> 
     <item 
     android:id="@+id/action_dropdown1" 
     android:title="@string/dropdown_1" /> 
     <item 
     android:id="@+id/action_dropdown2" 
     android:title="@string/dropdown2" /> 
     <item 
     android:id="@+id/action_dropdown3" 
     android:title="@string/dropdown3" /> 
    </menu> 
</item> 

<item 
    more item 
</item> 

然後

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    switch (id) { 
    case R.id.action_dropdown1: 
    ..... 
    return true; 

    case R.id.action_dropdown2: 
    ..... 
    return true; 

    ..... 

    default: 
     return super.onOptionsItemSelected(item); 
    } 
    } 

這完全是工作code.Mark這個回答,如果它幫助。 :)快樂的編碼。

0

你需要添加工具:上下文=「類」菜單標籤

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".activities.BaseActivity"> 


    <item 
     android:id="@+id/action_notification1" 
     android:icon="@drawable/one" 
     android:title="action_notification" 
     app:showAsAction="always"/> 
<item 
     android:id="@+id/action_notification2" 
     android:icon="@drawable/two" 
     android:title="action_notification" 
     app:showAsAction="always"/> 
<item 
     android:id="@+id/action_notification3" 
     android:icon="@drawable/three" 
     android:title="action_notification" 
     app:showAsAction="always"/> 

</menu> 



@Override 
     public boolean onCreateOptionsMenu(Menu menu) { 

     getMenuInflater().inflate(R.menu.main, menu); 

     return super.onCreateOptionsMenu(menu); 

     } 

你shold編寫工具:上下文菜單標籤,然後運行,你會得到圖標文本

相關問題