ресурс colors.xml не работает - PullRequest
15 голосов
/ 10 июля 2011

Я создал файл colors.xml в своем приложении для Android в /res/values/colors.xml. Содержимое ...

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="Green">#00ff00</color>
</resources>

Я пытаюсь обновить фон моего TableRow, используя ...

    TableRow test = (TableRow)findViewById(R.id.tableRow2);
    test.setBackgroundColor(R.color.Green);

Это не устанавливает его как зеленый, вместо этого он серый. Независимо от того, какие значения я добавляю в файл colors.xml, он всегда одинакового серого цвета. Однако это работает ...

    TableRow test = (TableRow)findViewById(R.id.tableRow2);
    test.setBackgroundColor(android.graphics.Color.GREEN);

Что-то не так с моим colors.xml?

Ответы [ 2 ]

22 голосов
/ 10 июля 2011

Вы должны использовать это вместо:

TableRow test = (TableRow)findViewById(R.id.tableRow2);
test.setBackgroundColor(getResources().getColor(R.color.Green));

К сожалению, идентификатор ресурса и цвет имеют один и тот же тип: int. Вы должны получить значение цвета из ресурсов через getColor() и использовать это значение в качестве цвета. Пока вы используете идентификатор ресурса в качестве цвета.

4 голосов
/ 10 июля 2011

Попробуйте вместо этого использовать команду setBackgroundResource, т.е.

TableRow test = (TableRow)findViewById(R.id.tableRow2);
test.setBackgroundResource(R.color.Green);
...