217 votes

Comment changer la couleur du texte de l'élément de menu dans Android?

Puis-je changer la couleur d'arrière-plan d'un élément de menu sous Android?

S'il vous plaît laissez-moi savoir si quelqu'un a une solution à cela. La dernière option sera évidemment de le personnaliser mais existe-t-il un moyen de changer la couleur du texte sans le personnaliser.

378voto

Une simple ligne dans votre thème :)

 <item name="android:actionMenuTextColor">@color/your_color</item>

138voto

Marcus Wolschon Points 777

Il semble qu'un

   <item name="android:itemTextAppearance">@style/myCustomMenuTextAppearance</item>

dans mon thème et

    <style name="myCustomMenuTextAppearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
        <item name="android:textColor">@android:color/primary_text_dark</item>
    </style>

dans styles.xml, changez le style des éléments de liste mais pas les éléments de menu.

112voto

max.mustermann Points 531

Vous pouvez changer la couleur du MenuItem facilement en utilisant SpannableString au lieu de String .

 @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.your_menu, menu);

    int positionOfMenuItem = 0; // or whatever...
    MenuItem item = menu.getItem(positionOfMenuItem);
    SpannableString s = new SpannableString("My red MenuItem");
    s.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), 0);
    item.setTitle(s);
}

44voto

Muralikrishna G S Points 299

Je l'ai fait par programme comme ceci:

 public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.changeip_card_menu, menu); 
    for(int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getItem(i);
        SpannableString spanString = new SpannableString(menu.getItem(i).getTitle().toString());
        spanString.setSpan(new ForegroundColorSpan(Color.BLACK), 0,     spanString.length(), 0); //fix the color to white
        item.setTitle(spanString);
    }
    return true;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X