Страница 1 из 1

Цвет текста элементов меню в action bar

Добавлено: 27 апр 2014, 09:12
rolotomasi
Привет!
Есть такое меню:

Код: Выделить всё

<item 
    android:id="@+id/miOutcome"
    android:showAsAction="always"
    android:title="@string/outcome_title">
</item>

<item 
    android:id="@+id/miIncome" 
    android:showAsAction="always"
    android:title="@string/income_title">
</item>

<item 
    android:id="@+id/miNewCat" 
    android:icon="@drawable/plus_icon"
    android:showAsAction="always" 
    android:title="@string/new_category_btn">
</item>
Я хочу сделать так, чтобы цвет элемента miIncome был зеленый, а цвет miOutcome красным. Попытался сделать это таким образом:

Код: Выделить всё

public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.category_menu, menu);
        MenuItem menuItem = menu.getItem(0);
        SpannableString spanString = new SpannableString(menuItem.getTitle());
        int color = getResources().getColor(R.color.COLOR_OF_OUTCOME);
        spanString.setSpan(new ForegroundColorSpan(color), 0, spanString.length(), 0);
        menuItem.setTitle(spanString);
        return super.onCreateOptionsMenu(menu);
    }
Но цвет не меняется. Если же сделать то же самое на обычном выпадающем меню (где атрибут showAsAction не стоит как always), то всё получается.
Прошу помочь разобраться. Буду благодарен.

Re: Цвет текста элементов меню в action bar

Добавлено: 27 апр 2014, 12:47
alexmx
android:background="#00FF00"

Re: Цвет текста элементов меню в action bar

Добавлено: 27 апр 2014, 13:31
rolotomasi
В меню нет никаких свойств цвета.
Нужно поменять цвет текста элемента меню, не фона.

Re: Цвет текста элементов меню в action bar

Добавлено: 27 апр 2014, 14:38
alexmx
[syntax=xml]<item
android:id="@+id/miIncome"
android:showAsAction="always"
android:title="@string/income_title"
android:textColor="#00FF00">
</item>[/syntax]

Re: Цвет текста элементов меню в action bar

Добавлено: 28 апр 2014, 08:18
rolotomasi
alexmx писал(а):[syntax=xml]<item
android:id="@+id/miIncome"
android:showAsAction="always"
android:title="@string/income_title"
android:textColor="#00FF00">
</item>[/syntax]
не работает. цвет остается как был прежде.

Re: Цвет текста элементов меню в action bar

Добавлено: 28 апр 2014, 08:36
altwin
Google спрашивали?
styles.xml
[syntax=xml]
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
</style>

<style name="MyTheme.ActionBarStyle"parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
</style>

<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/red</item>
</style>
</resources>
[/syntax]
Внимательно почитайте тут: https://developer.android.com/intl/ru/t ... yling.html

Re: Цвет текста элементов меню в action bar

Добавлено: 28 апр 2014, 08:41
rolotomasi
altwin писал(а):Google спрашивали?
styles.xml
[syntax=xml]
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
</style>

<style name="MyTheme.ActionBarStyle"parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
</style>

<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/red</item>
</style>
</resources>
[/syntax]
Внимательно почитайте тут: https://developer.android.com/intl/ru/t ... yling.html

Насколько я понял, если через это делать через тему, то цвета будут одинаковые во всех пунктах. А я бы хотел один зеленый, другой красный. Или я не прав и можно добиться того, что хочу?

Re: Цвет текста элементов меню в action bar

Добавлено: 28 апр 2014, 08:53
altwin
rolotomasi писал(а): Насколько я понял, если через это делать через тему, то цвета будут одинаковые во всех пунктах. А я бы хотел один зеленый, другой красный. Или я не прав и можно добиться того, что хочу?
http://habrahabr.ru/post/117513/

P.S. что мешает следуя этому уроку: http://startandroid.ru/ru/uroki/vse-uro ... entov.html, в файлах res/menu/fragment1.xml и res/menu/fragment2.xml, добавить атрибут textColor?