我正在尝试更改TextView中某些文字的颜色,并且我知道使用this Question.中的Spannable class
我的问题是我的文本是作为SQLite数据库查询的返回值动态添加的。
我仍然可以使用Spannable,如果是,那么如何?
在TextView中设置文本的代码部分:
case R.id.btnAvgAttSearch:
final String entry = avgEntered.getText().toString();
// convert from string value to int
int avgValToSearch = Integer.parseInt(entry); //
// /setting results equal to return val of search
results = db.getSpecificAverageAtt(avgValToSearch);
tvResults.setText(listToString(results));
}
break;
TextView中的示例输出,请注意带圆圈的区域是我希望为红色的行:
修改
ListToString方法:
public static String listToString(List<?> list) {
String result = "";
for (int i = 0; i < list.size(); i++) {
result += "" + list.get(i) + "\n\n";
}
return result;
}
答案 0 :(得分:0)
只需更改ListToSTring即可返回Spannable
,例如:
public static Spannable listToString(List<?> list) {
SpannableStringBuilder result = new SpannableStringBuilder();
for (int i = 0; i < list.size(); i++) {
result.append(list.get(i)).append("\n\n");
}
return result;
}
然后,您可以以编程方式将结果添加到结果中。
Spannable text = listToString(results);
text.setSpan( /*.. span goes here */ );
tvResults.setText(text);