从 JSON 字符串在 EditText 上显示 HTML

Posted

技术标签:

【中文标题】从 JSON 字符串在 EditText 上显示 HTML【英文标题】:Display HTML on EditText from a JSON String 【发布时间】:2012-03-17 15:28:43 【问题描述】:

我正在尝试在 android 上向 EditText 显示一些基本的 html

我已经发现这样做的方法是使用 Html.fromHtml(String source) 方法。 这实际上工作得很好。

但是,我的字符串源是从 JSONObject 中提取的,由于某种原因,它忽略了其中的 HTML 标记。

我使用这些行来更改相应 EditText 上的文本:

text = JSONdata.getJSONObject("text");
clip.setText(Html.fromHtml("text.getString("content")));

然而,这只是显示没有任何格式的字符串。 这里有人知道为什么会这样吗?

让我更疯狂的是,如果我尝试这个:

clip.setText(Html.fromHtml("<h2>Heading</h2>" + text.getString("content")));

这将以正确的格式显示单词标题,同时仍然忽略在以下字符串中找到的标签。

我想我需要将 JSONString 更改为另一种类型的数据,但我还没有发现任何有用的东西。

我希望我的问题足够清楚。 提前致谢。

【问题讨论】:

你能不能给出从这里返回的字符串 text.getString("content") 如果原始字符串有

Heading

,它将返回:<h2>Heading</h2>所以 JSON 正在转义 符号。
【参考方案1】:

如果需要编辑html标签,不要使用Html.fromhtml

EditTeht 不能正确显示所有标签。 它的工作:

<a href="...">
<b>
<big>
<blockquote>
<br>
<cite>
<div align="...">
<em>
<font size="..." color="..." face="...">
<h1>
<h2>
<h3>
<h4>
<h5>
<h6>
<i>
<img src="...">
<p>
<small>
<strike>
<strong>
<sub>
<sup>
<tt>
<u>

【讨论】:

我不太明白你的回答。但是,如果我不使用 Html.fromHtml 文本只是逐字显示,没有任何格式。 好吧,我第一次看错了。因此,尝试使用 decode /enсode 制作 json-file。您应该在标签中看到一些内容:&lt;a href=\"http:\/\/reporterr.org\"&gt;&lt;strong&gt;Details&lt;\/strong&gt;&lt;\/a&gt;【参考方案2】:

如果用标签包围字符串会发生什么?

clip.setText(Html.fromHtml("<html>"+text.getString("content")+"</html>)); 

【讨论】:

好吧,它不显示 标签,所以我认为它们被正确解释了,但是内容字符串一直出现而没有任何格式。

以上是关于从 JSON 字符串在 EditText 上显示 HTML的主要内容,如果未能解决你的问题,请参考以下文章

Android上点击EditText将不会显示软键盘

无法从edittext获取值到字符串

android格式的edittext,每4个字符后显示空格

以编程方式结合 Textview 和 EditText 创建自定义字段

从 Json Array 在 UITableView 上显示图像

从android中的对话框保存EditText