我想使用以下代码在textview中显示文本:
Html.fromHtml("<html><body><table style=width:100%><tr><td><B>No</td><td><B>Product Name</td><td><B>Qty</td><td><B>Amount</td></tr></body></html>");
但结果的格式不正确,结果如下:
NoPRoductNameQtyAmount
请在此代码中提出我的错误。
答案 0 :(得分:8)
fromHtml()
不支持<table>
及相关标签。您的选择是:
重新格式化您的文字以避免表格
使用WebView
呈现您的HTML表格
为您的表格使用原生小部件和容器(例如TableLayout
)
答案 1 :(得分:0)
我没有在TextView中使用html表格,而是将普通文本格式化为像文本一样的表格,在文本中添加空白以获得整洁的结构。
这是代码:
String lines[] = getItem(position).toString().split("\n");
String print = "";
String parts[] = null;
String tmp = "";
int weight = 0;
for (int i=0; i < lines.length; i++) {
if (!lines[i].equalsIgnoreCase("")) {
parts = lines[i].split(":", 2);
tmp = "";
Paint textPaint = text.getPaint();
float width = textPaint.measureText(parts[0]);
float wslength = textPaint.measureText(" ");
for (int j = 0; j < (220 - Math.round(width))/Math.round(wslength); j++) {
tmp = tmp + " ";
}
if (print.equalsIgnoreCase("")) {
print = print + parts[0] + tmp + Html.fromHtml(""+parts[1]+"");
} else {
print = print + "\n" + parts[0] + tmp + parts[1];
}
}
}
您可以在此处找到更多解释: http://blog.blupixelit.eu/convert-text-to-table-in-android-sdk/
希望这有帮助。
答案 2 :(得分:0)
如何更改仅通过webview渲染表格,其他标签通过textview渲染的方式?最近,我完成了一个演示来克服这个问题。因此,我们首先需要将<table>
与其他受支持的标签分开,这样会将“ <p>**<p> blabala <table>balabla </table> blabla <p>**<p>
”更改为三个单独的字符串
<p>**<p> blabala
<table>balabla </table>
blabla <p>**<p>
然后只有<table>
个包含标签的标签由webview呈现,其他标签由textview呈现
而android中的结果将是:
<ScrollView>
<LinearLayout>
<TextView>
<WebView> --- let the webview ATMOST measured
<TextView>
所以我认为一切都很好。检查this commit 了解详情
答案 3 :(得分:-1)
HtmlTextView最近添加了对HTML表的基本支持。这是有限的,但如果您需要担心的是<table>
,<td>
,<tr>
和<th>
,它们就可以解决问题。