满意答案
c7s9kdi
2015.04.07
采纳率:50% 等级:9
已帮助:1065人
您好,要创建一个样式化的文本资源,并可作为格式化串使用。通常这不能生效,因为String.format(String,
Object...)方法会去除字符串内的所有的样式信息。解决方法是写入一段转义后的HTML标记,然后在格式化后再用fromHtml(String)恢复出这些样式。例如:
(1)将样式化的文本资源存储为转义后的HTML字符串:
name="welcome_messages">Hello, %1$s! You have %2$d new messages.
在这个格式化字符串里,加入了一个元素。注意左尖括号是用标记
(2)然后,按照通常方式格式化字符串,并调用fromHtml(String)
把HTML文本转换成带样式的文本。
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username,mailCount);
CharSequence styledText = Html.fromHtml(text);
因为fromHtml(String)方法会格式化所有的HTML内容,所以要确保用htmlEncode(String)对带格式化文本的字符串内所有可能的HTML字符进行转义。比如,如果要把可能包含诸如“
String escapedUsername = TextUtil.htmlEncode(username)
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), escapedUsername,mailCount);
CharSequence styledText = Html.fromHtml(text);
00分享举报