我希望我应用的操作栏中的MenuItem
之一根据其值更改颜色。还有其他项目应该保留默认样式,这样我就不能将样式应用到整个操作栏,它只需要这个项目。我尝试使用SpannableString
这样:
MenuItem item = getActionBar().findItem(R.id.item_id);
SpannableString colouredString = new SpannableString("Item");
colouredString.setSpan(new ForegroundColorSpan(
booleanStatement ? Color.RED : Color.GREEN
), 0, colouredString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
item.setTitle(colouredString);
这会正确设置值,但项目的文本颜色不受影响。如果我加入
getActionBar().setTitle(colouredString);
然后按照预期设置标题,并应用文本颜色。有没有办法让SpannableString
对MenuItem
以及整体操作栏标题起作用?或者另一种设置操作栏菜单项的文本颜色的方法?