也许我的问题是一个愚蠢的问题但是webview并不能解释html标签。我搜索过但没有发现这样的问题。如果您有任何想法,请告诉我。
这是我的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Get context of application
mContext = getActivity().getApplicationContext();
// Assign layout to fragment
View view = inflater.inflate(R.layout.dialog_product_info, container, false);
mWebView = (WebView) view.findViewById(R.id.webView);
mWebView.setBackgroundColor(getResources().getColor(R.color.transparent));
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getDialog().setTitle(mProduct.getName());
mWebView.loadDataWithBaseURL(null, "<HTML>" + mProduct.getDescription() + "</HTML>", "text/html", "utf-8", null);
}
截图:
答案 0 :(得分:0)
据推测,getDescription()
正在返回转义数据。检查从getDescription()
返回的值。如果它包含大量<
和>
,则<
和>
会转换为实体引用。您需要将这些转换回<
和>
。
答案 1 :(得分:0)
基于this answer,我下载了添加到我的lib文件夹的commons-lang3-3.3.2-bin.zip文件,并将我的代码更改为以下内容。它现在工作正常。希望它能帮助别人。
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getDialog().setTitle(mProduct.getName());
String description = mProduct.getDescription();
description = StringEscapeUtils.unescapeHtml4(description);
mWebView.loadDataWithBaseURL(null, "<HTML>" + description + "</HTML>", "text/html", "utf-8", null);
}