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

Android 无法动态设置样式的解决方法,android,coding-style,themes,dynamic,Android,Coding Style,Themes,Dynamic,我需要能够做这样的事情: if(condition){ textview.setStyle(R.styles.a1); }else{ textview.setStyle(R.styles.a2); } 问题是,您不能在运行时更改样式,有像setTextApperience和类似的方法,但不能用于设置样式。 我的问题是如何根据主题为其他视图的文本视图设置不同的背景,例如,在themeA中,id=tv1的文本视图的颜色为蓝色,而对于themeB,id=tv1的文本视图的颜色为红色 我知道论坛上讨论

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

if(condition){
textview.setStyle(R.styles.a1);
}else{
textview.setStyle(R.styles.a2);
}
问题是,您不能在运行时更改样式,有像setTextApperience和类似的方法,但不能用于设置样式。 我的问题是如何根据主题为其他视图的文本视图设置不同的背景,例如,在themeA中,id=tv1的文本视图的颜色为蓝色,而对于themeB,id=tv1的文本视图的颜色为红色

我知道论坛上讨论过这些事情,但我找不到我需要的东西

编辑1: 我知道我可以在运行时设置主题 一些背景


但是我的问题是如何为某个特定元素的不同主题设置不同的backgorund,比如id=textview1的元素,您无法设置样式,因为没有定义这样的方法。 但您可以在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);
}
编辑:

您可以这样设置背景和文本颜色

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

或者检查此帖子答案

您无法设置样式,因为没有定义此类方法。 但您可以在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);
}
编辑:

您可以这样设置背景和文本颜色

if(condition){
    textview.setBackground(Color.Grey);
    textview.setTextColor(Color.Black);
}else{
    textview.setBackground(Color.Blue);
    textview.setTextColor(Color.White);
}
或者检查这个帖子的答案