【问题标题】:How to use different text colours for different overflow menu items如何为不同的溢出菜单项使用不同的文本颜色
【发布时间】:2014-09-24 22:18:00
【问题描述】:
我的溢出菜单中有 3 个菜单项,我希望每个项的文本具有我选择的不同颜色(基于我的应用程序中的资源 - 例如)。我怎样才能做到这一点?下面的代码将所有项目的文本更改为蓝色(这不是我想要的)。我只希望其中一个是蓝色的,第二个是红色的,第三个是绿色的。
<style name="ThemeCustom">
<item name="android:textColor">@color/blue</item>
</style>
【问题讨论】:
标签:
android
xml
android-layout
android-intent
android-activity
【解决方案1】:
将菜单项添加到溢出菜单后,在准备 java 文件中的选项时修改菜单项文本的前景色。
例如在OnPrepareOptions菜单方法中,获取菜单项的标题,修改每个菜单项的前景色
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem mi = menu.getItem(itemID);
String title = mi.getTitle().toString();
Spannable newTitle = new SpannableString(title);
newTitle.setSpan(new ForegroundColorSpan(Color.BLUE), 0, newTitle.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
mi.setTitle(newTitle);
return true;
}
您可以通过 for 循环对其进行迭代以获取菜单项列表并更改每个标题集的前景色。