2016-04-15 8 views
3

Ich arbeite programmgesteuert ein menü-Item in Menü hinzufügen. Ich möchte Hintergrundfarbe bei der Auswahl zu bestimmten Artikel hinzufügen. Wie kann ich Hintergrund zu MenuItem hinzufügen?Wie ändere ich die Hintergrundfarbe von MenuItem in Android?

enter image description here

Ihre Antwort würde geschätzt.

+0

Diese Antwort könnte helfen: http://stackoverflow.com/questions/19659637/how-to-change-the-background-color-of-action-bars-option-menu-in-android-4-2 – davehenry

+0

überprüfen Sie bitte http://Stackoverflow.com/a/28979152/3790150 – saeed

Antwort

1
/** Firstly You need to create an Style for popmenu as you want refer below sample for that**/ 


    <style name="MyApp.PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow"> 
      name="android:textStyle">@style/commonEditTextTheme</item> 
      <item name="android:popupBackground">@drawable/pop_up_menu_bg_with_shadow</item> 
     </style> 


**Place of drawable you can also replace with color as you needed or make XML Drawable into your drawable folder ** 

    <style name="commonEditTextTheme" parent="@android:style/TextAppearance.Medium"> 
      <item name="android:fontFamily">sans-serif-light</item> 
     </style> 

    ** this pop menu theme add in your main application or activity theme like below** 

     <!--My Theme--> 
     <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
      ..... 
      <item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item> 

       </style> 
2

Während andere Antworten ändern Stil bieten (die alle Menüpunkte beeinflussen, und, wie ich sie verstehe, notwendig ist, einen Menüpunkt zu ändern),
Ich schlage vor, Sie android:actionLayout Attribut zu verwenden, um Ihre Gewohnheit zu implementieren Layour für Menüeintrag.

Siehe documentation dafür (Suche actionLayout, es ist wirklich sehr einfach).

Auch ich denke, es gibt eine Möglichkeit, ein selector als Ihr Layout zu machen und es zu verwenden.


Aktualisierung. Sorry, ich täuschen Sie :(

All dies nur funktioniert, wenn MenuItem als Aktion angezeigt wird (nicht, wenn sie auf drei Punkte zu drücken)

Scheint, wie Jungs gegeben andere Antworten waren richtig -. Der einzige Weg, dies zu gestalten Themen verändert

Aber bitte überprüfen this und this -... es könnte Ihnen helfen, Wähler für Ihre Zwecke zur Verfügung zu stellen
Sie können auch PopupMenu erstellen oder sogar PopupWindow, letzte vollständig anpassbar
Die letzte Option ist zu erstellen benutzerdefinierte Spinner, überprüfen this.

Hoffe etwas von diesem wird Ihnen helfen. Vielen Dank.

+0

Sie haben Recht, können Sie erklären, wie Sie Actionlayout in MenuItem programmgesteuert Android hinzufügen – Vasant