更改appcompat的操作栏菜单所选文本颜色

Joh*_*ohn 2 android android-actionbar android-styles android-actionbar-compat

尝试使用android-support-v7-appcompat设置动作栏文本颜色时遇到了很多麻烦.我能够将选择器颜色从默认颜色更改为浅灰色,但是现在当我选择文本颜色也会改变时.我希望用户进行选择时文本颜色保持黑色.有任何想法吗?谢谢!

文字颜色需要保持黑色

Joh*_*ohn 7

在我的themes.xml中,这就是诀窍

<style name="AppTheme.AppCompat.Light" parent="@style/Theme.AppCompat.Light"> 
        <item name="android:itemTextAppearance">@style/MenuTextAppearance</item>    
</style>

<style name="MenuTextAppearance">
        <item name="android:textColor">@android:color/black</item>
</style>
Run Code Online (Sandbox Code Playgroud)

另外,我发现你可以使用spannable字符串以编程方式自定义menuItems的文本颜色.这导致应用程序在使用appcompay-v7时崩溃,但其他人已经成功使用了Sherlock,Holo等.示例:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.your_menu, menu);

    int positionOfMenuItem = 0; // or whatever...
    MenuItem item = menu.getItem(positionOfMenuItem);
    SpannableString s = new SpannableString("My red MenuItem");
    s.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), 0);
    item.setTitle(s);
} 
Run Code Online (Sandbox Code Playgroud)

/sf/answers/1330601541/

如果您希望不同的菜单项具有不同的颜色,这将是很好的.