如何为不同的溢出菜单项使用不同的文本颜色

时间:2014-09-24 22:18:01

标签: android xml android-layout android-intent android-activity

我的溢出菜单中有3个菜单项,我希望每个项目的文本都有我选择的不同颜色(基于我的应用程序中的资源 - 例如)。我怎样才能做到这一点?下面的代码将所有项目的文本更改为蓝色(这不是我想要的)。我只希望其中一个是蓝色,第二个是红色,第三个是绿色。

<style name="ThemeCustom">
    <item name="android:textColor">@color/blue</item>        
</style>

1 个答案:

答案 0 :(得分:0)

将菜单项添加到溢出菜单后,在准备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循环迭代它以获取菜单项列表并更改每个标题集的前景色。