Android ActionBarSherlock更改MenuItem的文本颜色

时间:2014-04-15 12:42:26

标签: android actionbarsherlock

我有:

 <style name="AppTheme" parent="Theme.Sherlock.Light">
       <item name="actionBarStyle">@style/AppTheme.ActionBar</item>     
       <item name="actionMenuTextColor">#fff</item>
 </style>

 <style name="AppTheme.ActionBar" parent="@style/Widget.Sherlock.ActionBar">
         <item name="android:textStyle">@style/AppTheme.ActionBar.Text</item>
 </style>

 <style name="AppTheme.ActionBar.Text" parent="@android:style/TextAppearance">
          <item name="android:textColor">#fff</item>
 </style>

和option_menu.xml

<item
        android:id="@+id/menu_save"

        android:showAsAction="always"
        android:title="@string/save"
        android:visible="true"/> 

我试过this

和这个

SpannableString s = new SpannableString(menu.findItem(R.id.menu_save).getTitle());
        s.setSpan(new ForegroundColorSpan(Color.WHITE), 0, s.length(), 0);      
        menu.findItem(R.id.menu_save).setTitle(s);

但是这个项目的文字仍然是黑色的。如何将其更改为白色?

1 个答案:

答案 0 :(得分:1)

好的,我是通过设置actionViewClass:

来完成的
 <item
        android:id="@+id/context_menu_save"
        android:actionViewClass="ru.seopult.cybermarketing.view.TextViewPlus"
        android:showAsAction="always"
        android:title="@string/save"
        android:visible="false"/> 

并在style.xml中:

<style name="AppTheme.ActionBar.TextButton" parent="AppTheme">
        <item name="android:textSize">15sp</item> 
        <item name="android:textColor">#FFFFFF</item>    
    </style>

然后在onCreateOptionsMenu写道:

TextViewPlus text = ((TextViewPlus)menu.findItem(R.id.context_menu_save).getActionView());
        text.setTextAppearance(getActivity().getApplicationContext(), R.style.AppTheme_ActionBar_TextButton);
        text.setText(menu.findItem(R.id.context_menu_save).getTitle());
        text.setPadding(0, 0, 10, 0);