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 принимает ссылку на ресурс.

→ Ссылка