0
让我们想象一个用例,我需要在Android上创建一个记录器,并在TextView中显示所有内容。在TextView中附加HTML内容
所以我创建了一个多行TextView。然后开始有添加简单的文本TextView的方法:
TextView output; // Initialized in onCreate
public static void log(final String text) { // Method is called always when Log.log is called
output.append(text + "\n");
}
这就像一个魅力,但我想添加红色文本(或文本背景)当日志返回一些不好的信息(例如HTTP 500) 。所以,我已经更新的方法和使用的一些HTML:
public static void log(final String text) {
String newText = output.getText().toString();
if (text.contains("500")) {
newText += "<font color='#FF0000'><b>" + text + "</b></font><br />";
} else {
newText += text + "<br />";
}
output.setText(Html.fromHtml(newText), TextView.BufferType.SPANNABLE);
}
但它始终格式只是当前的“文本”,一切都在那之前(output.getText())未格式化。似乎TextView不保留带有HTML标签的文本,只是一次装饰。
我想是这样的:
spannableString.setSpan(new BackgroundColorSpan(color), 0,
text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
output.setText(spannableString, TextView.BufferType.SPANNABLE);
哪做的彩色背景,但只是当前文本。我希望有像白线这样的输出,并且当大约500时显示一些红线(所以它是动态的)。
任何想法?