我得到了一个json响应,并且必须在textView中将消息呈现给html
{
"CaseNote":
[
{
"ID": 575732,
"CaseID": 218320,
"Date": "6/15/2014 3:04:12 PM",
"Message": "<table id='tblUpdateHistory' cellpadding='0' cellspacing='0'><tr align='left' valign='top'><td align='left' colspan='3' valign='top'><b>Case Update History<b></td></tr><tr align='left' valign='top'><td class='istColumn' align='left'><b>&nbsp;</b></td><td class='secondColumn' align='left' valign='top'><b>Old Value</b></td><td class='thirdColumn' align='left' valign='top'><b>Updated Value</b></td></tr><tr align='left'><td class='istColumn' align='left' valign='top'>Phone</td><td class='secondColumn' align='left' valign='top'>2034947144</td><td class='thirdColumn' align='left' valign='top'>203-494-7144</td></tr></table>",
"Status": 2,
"ReOpened": "False",
"UserName": "Jill Bailey",
"Source": "CallCenter",
"OriginalRequest": "False"
}
]
}
我尝试了四种编码html的方法,但没有一种方法可以工作。
String firstEncoding = TextUtils.htmlEncode(itemList.get(position).getMessage());
String secondEncoding = Html.escapeHtml(itemList.get(position).getMessage().toString());
String firstOne = StringEscapeUtils.escapeHtml3(itemList.get(position).getMessage());
String secondOne = StringEscapeUtils.escapeHtml4(itemList.get(position).getMessage());
然后我尝试在下面的方法中设置它
public static void setHtml(TextView textView, String bodyData) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
textView.setText(Html.fromHtml(bodyData, Html.FROM_HTML_MODE_LEGACY));
} else {
textView.setText(Html.fromHtml(bodyData));
}
}
以上方法都没有正确编码我的html。我做错了哪种编码。
解决了一半问题。
我发现了我的错误,而不是escapeHtml4
。我必须使用UnescapeHtml4
,但&amp; nbsp 不要占用空间。现在只是它没有占据下面的空间..
Case Update History
Old Value Updated Value
Phone 2034947144 203-494-7144