在应用程序中,我正在处理来自HTTP响应的各种UI元素的颜色,即着色在运行时完成,无法使用Android主题完成。动态更改工具栏的文本颜色MenuItem文本
有关此主题的其他问题,但大多数都使用主题,或者如果动态代码,代码不起作用。例如,使用跨度:
@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() –