In der App arbeite ich an Farben für verschiedene UI-Elemente kommen von einer HTTP-Antwort, dh Färbung ist bei Laufzeit getan, und kann nicht mit Android theming getan werden.Dynamische Änderung der Textfarbe von Toolbar MenuItem Text
Zu diesem Thema gibt es noch weitere Fragen, aber die meisten verwenden Themes oder, wenn dynamischer Code, funktioniert der Code nicht. Zum Beispiel unter Verwendung von Spannen:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menuItemGoalSave = menu.findItem(R.id.action_goal_edit_save);
SpannableString s = new SpannableString(menuItemGoalSave.getTitle() + "XX");
ForegroundColorSpan span = new ForegroundColorSpan(Color.RED);
s.setSpan(span, 0, s.length(), 0);
menuItemGoalSave.setTitle(s);
return true;
}
Oder ähnliche Ansätze HTML-Strings anwenden.
Der obige Code wendet theoretisch einen Farbbereich an, aber obwohl der Titel "XX" angehängt hat (dh der Code läuft und den Menüeintrag beeinflusst), ändert sich die Farbe nicht.
Gibt es eine Möglichkeit, die Farbe dieses Symbolleistenaktionselementtexts dynamisch zu beeinflussen?
Bitte zu klären, zu welchem Zeitpunkt Sie setzen neue Farbe –
I Flexibilität habe, aber zur Zeit sind versucht, es in onPrepareOptionsMenu() zu tun –