1

我有一个名为content. 里面是一些格式化的文本。然后我想通过执行以下操作在查看格式化文本和 html 之间切换:

if(!showHtml)
    content.setText(Html.fromHtml(content.getText().toString()), BufferType.SPANNABLE);
else
    content.setText(Html.toHtml(content.getText()));

如果格式化的文本是“test test ”,那么 html 会<p>test <b>test </b></p>很好,但是当返回时,格式会丢失,我会得到“test test”。

如果格式化的文本是“ test test”,则 html 输出为<p><b>test</b> test</p>,这又是正确的。但是,返回时得到的文本是“ test test ”。

所以看起来是第一个单词的格式应用于文本的其余部分(我已经在更长的字符串上进行了测试)。

有没有人遇到过这个问题,我该如何解决这个问题?

编辑 1似乎使用 EditText.setText(),它会自动使用 Editable 标志并完全忽略我对 Spannable 的请求。这可能是问题的根源吗?

4

1 回答 1

2

我是个傻瓜。我完全忘记了我有一个TextWatcher修改了应用的样式。我需要做的就是设置一个标志,告诉它在从 html 转换之后不要修改样式。

于 2012-10-15T08:56:06.910 回答