Не могу поменять цвет кнопки андроид
У меня есть кнопка
<Button
android:id="@+id/save_btn"
android:layout_width="272dp"
android:layout_height="53dp"
android:layout_marginTop="124dp"
app:layout_constraintHorizontal_bias="0.5"
app:cornerRadius="20dp"
android:text="Сохранить"
android:textSize="15sp" />
Я хочу динамически менять её бекграунд цвет.
if (condition) {
save_btn.setBackgroundColor(R.color.red)
}
else {
save_btn.setBackgroundColor(R.color.colorPrimary)
}
<color name="colorPrimary">#B6B6B6</color>
<color name="red">#FF473D</color>
Но вместо красного цвета я получаю синий. Что происходит?
Но если я выйду из фрагмента и зайду обратно то цвет меняется нормально.
Disclaimer: эти три ответа не помогли:
https://stackoverflow.com/questions/52558780/how-to-change-background-color-to-materialbutton-from-android-support-design-pro
https://stackoverflow.com/questions/55087014/cant-change-background-color-on-materialbutton-without-change-coloraccent
https://stackoverflow.com/questions/36875279/android-material-button-color
https://stackoverflow.com/questions/26519979/coloring-buttons-in-android-with-material-design-and-appcompat
Ответы (1 шт):
Вы должны получить цвет, используя метод ContextCompat.getColor()
save_btn.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.red));