2011-12-16 3 views
1

Я видел несколько примеров этого вопроса здесь, и предоставленные решения, похоже, не работают.setBackgroundDrawable не меняет LayoutBackground

Моя цель: обновить фон моего LinearLayout в зависимости от того, какой цвет я получаю от запроса к базе данных.

То, что я до сих пор:

if(teamc=="black"){ 
    drawable = this.getResources().getDrawable(R.drawable.blackbackground); 
    Toast.makeText(TeamActivity.this,teamc, Toast.LENGTH_LONG).show(); 
    teamColor.setBackgroundDrawable(drawable); 
    } 

цвет команды определяется как

teamColor = (LinearLayout) findViewById(R.id.teamcolor); 

Что происходит, что Toast появляется только штраф, но фон не меняется.

Любая помощь будет оценена по достоинству.

ответ

2

Вы уверены, что этот тост показывает, а не другой тост? Потому что вы пытаетесь проверить String, если он равен другому String с помощью оператора ==, и это неправильно.

Для сравнения между двумя объектами необходимо использовать метод .equals().

+0

ничего себе, не тот неловко – richardnixonthethird

+1

Нет, это не :), эти вещи случаются с каждым :) – Cata

0

попробуйте сделать непосредственно командуColor.setBackgroundResource (R.drawable.blackbackground);

+0

также попробовал, что с теми же результатами – richardnixonthethird

0

Вызовите Invalidate() в LinearLayout с помощью объекта teamColor после установки фоновой

teamColor.invalidate(); 
+0

не повезло с этим либо – richardnixonthethird

+0

не вставить больше кода в вопросе – Pratik

2

Это действительно странно, если Тост работает, но фон не меняется.

Try using teamc.equals("black"){} 

или

teamColor.setBackgroundResource(R.drawable.blackbackground); 
0

В моем приложении я использую WebView для отображения веб-страницы, когда страница масштабируется хорошо, но теперь это белые пространства на каждой стороне страницы, я могу изменить фон на черный цвет?

Смежные вопросы