В приложении я работаю над цветами для различных элементов пользовательского интерфейса, исходящими из HTTP-ответа, т. Е. Окраска выполняется с времени выполнения и не может быть выполнена с использованием Android-тематики.Динамическое изменение цвета текста панели инструментов MenuItem text
Другие вопросы существуют по этой теме, но большинство из них использует темы, или если динамический код, код не работает. Например, с использованием пролетов:
@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;
}
Или аналогичные подходы, применяющие HTML-строки.
В приведенном выше кодексе применяется диапазон с раскраской, но хотя заголовок имеет «XX» (т.е. код работает и влияет на элемент меню), цвет не изменяется.
Есть ли способ динамически влиять на цвет текста элемента действия панели инструментов?
Просьба уточнить, в какой момент вы устанавливаете новый цвет –
у меня есть гибкость, но в настоящее время я пытаюсь сделать это в onPrepareOptionsMenu() –