无法动态设置样式的解决方法

时间:2011-10-06 11:53:53

标签: android coding-style themes dynamic

我需要能够做到这样的事情:

if(condition){
textview.setStyle(R.styles.a1);
}else{
textview.setStyle(R.styles.a2);
}

问题是你无法在运行时更改样式,有类似setTextApperience和类似的方法但不能用于设置样式。 我的问题是如何根据主题为其他视图的textview设置不同的背景,例如在themeA中,id = tv1的textview的颜色是蓝色,而对于themeB,id = tv1的textview的颜色是红色。 ..

我知道这个问题在论坛上讨论过,但我找不到我需要的东西

EDIT1: 我知道我可以在运行时设置主题              somebackground ...

但我的问题是如何为某些特定元素设置不同主题的不同backgorund,让我们说id = textview1的元素

1 个答案:

答案 0 :(得分:0)

你不能设置样式,因为他们没有定义这样的方法。 但您可以在xml文件中创建不同的主题并在运行时更改

例如。

setTheme(android.R.style.Theme_Dark);

所以以风格制作主题并以这种方式使用

编辑:

你可以像这样设置背景和文字颜色

if(condition){
    textview.setBackground(Color.Grey);
    textview.setTextColor(Color.Black);
}else{
    textview.setBackground(Color.Blue);
    textview.setTextColor(Color.White);
}

或查看此帖子的答案How to change a TextView's style at runtime