Как установить цвет с .setBackgroundColor (); с цветом от значений / colors.xml

codepurveyor спросил: 28 марта 2018 в 01:57 в: android

В Android я пытаюсь установить цвет из res / values ​​/ colors.xml

Использование title.setBackgroundColor()

В настоящее время я могу установить его с помощью : title.setBackgroundColor(Color.GREEN);

Однако я хотел бы ссылаться на цвет из .xml

Когда я использую:

title.setBackgroundColor(R.color.white);

, ссылаясь на:

<color name="white">#FFFFFF</color>

Отчеты студии Andriod:

Should pass resolved color instead of resource id here: `getResources().getColor(R.color.white)` less... (⌘F1) 
This inspection looks at Android API calls that have been annotated with various support annotations (such as RequiresPermission or UiThread) and flags any calls that are not using the API correctly as specified by the annotations.  Examples of errors flagged by this inspection:
Passing the wrong type of resource integer (such as R.string) to an API that expects a different type (such as R.dimen).
Forgetting to invoke the overridden method (via super) in methods that require it
Calling a method that requires a permission without having declared that permission in the manifest
Passing a resource color reference to a method which expects an RGB integer value.
...and many more.  For more information, see the documentation at http://developer.android.com/tools/debugging/annotations.html


4 ответа

manhtuan21 ответил: 28 марта 2018 в 02:02

В вашем XML-файле:

<color name="newcolor">#FF00</color>

и используйте

title.setBackgroundResource(R.color.newcolor);
I. Renk ответил: 28 марта 2018 в 02:03

Вам нужно использовать ContextCompat.getColor(getContext(), R.color.green). Это даст вам цвет, который вы хотите, по идентификатору, который вы передаете. В конце концов:

title.setBackgroundColor(ContextCompat.getColor(getContext, R.color.green));
Augusto ответил: 28 марта 2018 в 02:09

Перейдите в res-> gt; values-> color.xml и напишите код, как показано ниже:

colors.xml

<resources>
    <color name="name_color">#3F51B5</color>
</resources>

и установите :

title.setBackgroundResource(R.color.name_color);

kajetons ali farooq ответил: 28 марта 2018 в 03:11

Просто добавьте это

title.setBackground(getResources().getColor(R.color.yourcolor));

или

title.setBackgroundResource(R.color.yourColor);