我使用此代码:
alertDialog.setMessage(Html.fromHtml(getString(R.string.text));
字符串文本包含:
<strong>Hello StackOverflow!</strong>, <em>today it's a beatiful day!</em>.
它就像Android 4.0.3中的魅力一样!但是,在Android 2.3.3中,标签是倒置的! <strong>
标记使文本为斜体,<em>
标记使文字变为粗体!!
我不知道为什么。 LogCat不会报告任何内容!
答案 0 :(得分:4)
这个似乎是 is一个bug。查看HTML
的来源Android 2.2(不是你的,但是关闭):
private void handleStartTag(String tag, Attributes attributes) {
//... Other if's
} else if (tag.equalsIgnoreCase("b")) {
start(mSpannableStringBuilder, new Bold());
} else if (tag.equalsIgnoreCase("strong")) {
start(mSpannableStringBuilder, new Italic()); // <-- PROBLEM
}
// ... More here
}
中得到修复
private void handleStartTag(String tag, Attributes attributes) {
// Others up here...
else if (tag.equalsIgnoreCase("strong")) {
start(mSpannableStringBuilder, new Bold()); // <- FIXED
} else if (tag.equalsIgnoreCase("b")) {
start(mSpannableStringBuilder, new Bold());
}
// More down here...
}
解决方案:正如您所看到的,<b>
- 标记可以正常工作。你可以改用它。
答案 1 :(得分:1)
这是一个已知问题:https://code.google.com/p/android/issues/detail?id=3473。
从该页面看,解决方案似乎是使用<b>
和<i>
而不是<strong>
和<em>
,因为前者被定义为粗体和斜体,而第二对是依赖于实现的。