setBackgroundDrawable不会更改LayoutBackground

时间:2011-12-16 09:37:11

标签: android drawable android-linearlayout

我已经在这里看到了这个问题的几个实例,所提供的解决方案似乎不起作用。

我的目标:根据我从数据库查询中获得的颜色更新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看起来很好,但背景并没有改变。

任何帮助都将不胜感激。

5 个答案:

答案 0 :(得分:2)

如果Toast正在工作但背景没有改变,这真的很奇怪。

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

teamColor.setBackgroundResource(R.drawable.blackbackground);

答案 1 :(得分:2)

你确定那个吐司正在展示而不是其他的吐司吗?因为您尝试使用==运算符检查String是否等于另一个String,这是错误的。

您必须使用.equals()方法在两个对象之间进行比较。

答案 2 :(得分:0)

尝试直接制作teamColor.setBackgroundResource(R.drawable.blackbackground);

答案 3 :(得分:0)

在设置背景

后使用teamColor对象调用LinearLayout的invalidate()
teamColor.invalidate();

答案 4 :(得分:0)

在我的应用程序中,我使用WebView来显示网页,当页面尺寸适合但现在页面的每一边都是白色空间时,我可以将背景更改为黑色吗?