我的活动中有四个TextView。根据传入的消息,我想更改这四个TextView的格式,以便一个更大和更粗,而其余的更小,并定期设置样式。为此,我创建了两个方法,setTextNormal和setTextBig。为了改变我使用这段代码的数字:
if (tokens[2].equals("0")) {
setTextBig(text1);
setTextNormal(text2);
setTextNormal(text3);
setTextNormal(text4);
}
if (tokens[2].equals("1")) {
setTextBig(text2);
setTextNormal(text1);
setTextNormal(text3);
setTextNormal(text4);
}
if (tokens[2].equals("2")) {
setTextBig(text3);
setTextNormal(text2);
setTextNormal(text1);
setTextNormal(text4);
}
if (tokens[2].equals("3")) {
setTextBig(text4);
setTextNormal(text2);
setTextNormal(text3);
setTextNormal(text1);
}
请注意,对于每个if语句,其中一个TextView设置为big,其余的设置为normal。它有效,但有没有更有效的方法来设置这些TextViews?
答案 0 :(得分:2)
制作一组文本变量,例如new EnvironmentVariableSubstitutor(false)
按照其他用户的建议,在开始时将所有文本设置为正常,然后执行以下操作:
[text1, text2, text3, text4]
答案 1 :(得分:2)
我建议您更改代码以使用setTextSize(text, boolean big)
方法,并按如下方式使用它:
String token = tokens[2];
setTextSize(text1, /*big*/token.equals("0"));
setTextSize(text2, /*big*/token.equals("1"));
setTextSize(text3, /*big*/token.equals("2"));
setTextSize(text4, /*big*/token.equals("3"));
答案 2 :(得分:0)
不确定是否真的更有效,只是先将所有文本设置为正常然后只将特定文本更改为大型作品,例如。
setTextNormal(text4);
setTextNormal(text2);
setTextNormal(text3);
setTextNormal(text1);
if (tokens[2].equals("0")) {
setTextBig(text1);
} else if (tokens[2].equals("1")) {
setTextBig(text2);
} else if (tokens[2].equals("2")) {
setTextBig(text3);
} else if (tokens[2].equals("3")) {
setTextBig(text4);
}
答案 3 :(得分:0)
也许你可以做那样的事情。
setTextNormal(text1);
setTextNormal(text2);
setTextNormal(text3);
setTextNormal(text4);
if (tokens[2].equals("0")) {
setTextBig(text1);
} else if (tokens[2].equals("1")) {
setTextBig(text2);
} else if (tokens[2].equals("2")) {
setTextBig(text3);
} else if (tokens[2].equals("3")) {
setTextBig(text4);
}
检查是否可以将文本设置为正常并将其设置为大。
答案 4 :(得分:0)
void setNormal(){
setTextNormal(text1);
setTextNormal(text2);
setTextNormal(text3);
setTextNormal(text4);
}
switch(tokens[2]){
case "0":
setNormal();
setTextBig(text1);
break;
case "1":
setNormal();
setTextBig(text2);
break;
case "2":
setNormal();
setTextBig(text3);
break;
case "3":
setNormal();
setTextBig(text4);
break;
default:
break;
}
答案 5 :(得分:0)
if (tokens[2].equals("0")) {
setTextsOrder(text1, text2, text3, text4);
} else if (tokens[2].equals("1")) {
setTextsOrder(text2, text1, text3, text4);
} else if (tokens[2].equals("2")) {
setTextsOrder(text3, text2, text1, text4);
} else if (tokens[2].equals("3")) {
setTextsOrder(text4, text2, text3, text1);
}
}
.
.
private static void setTextsOrder(String text, String... texts) {
setTextBig(text);
for (String textIt : texts) {
setTextNormal(textIt);
}
}