setBackground не меняет цвет
Хочу изменить цвет бекгрануда программно, но почему то setBackground(R.drawable.name); - подчеркивается красным ( именно параметры) пробывал через R.color - та же фигня. Сам метод:
private void style(){
System.out.println(blackStyle + " проверка 1");
if(blackStyle){
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
System.out.println(blackStyle + " Проверка");
relativeLayout = (RelativeLayout) root.findViewById(R.id.relative);
relativeLayout.setBackground(R.drawable.btn_register);
}
});
}
Ответы (2 шт):
Автор решения: Евгений Половинкин
→ Ссылка
Правильное решение для тех, кто мб тоже столкнулся с данным вопросом:
private void style(){
System.out.println(blackStyle + " проверка 1");
if(blackStyle){
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
System.out.println(blackStyle + " Проверка");
relativeLayout = (RelativeLayout) root.findViewById(R.id.relative);
Resources res = getResources();
Drawable drawable = res.getDrawable(R.color.btn_register);
relativeLayout.setBackground(drawable);
}
});
}
Коментарий не закрываю, хотелось бы узнать у других почему так происходит?
Автор решения: DuosDuo
→ Ссылка
Все просто. setBackground принимает Drawable, а не ссылку на ресурс. setBackgroundResource принимает ссылку на ресурс.