我有一个名为content
的EditText。里面是一些格式化的文字。然后,我想通过执行以下操作在看到格式化文本和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>
,这很好,但是当返回时,格式化将丢失并且我将进行“测试测试”
如果格式化的文字是“测试测试”,则html会显示为<p><b>test</b> test</p>
,这又是正确的。但是,返回时获得的文字是“测试测试”。
所以它看起来是第一个单词的格式应用于文本的其余部分(我已经在更长的字符串上测试过它)。
之前有没有人遇到过这个问题,我怎么能解决这个问题?
编辑1 似乎使用EditText.setText(),它会自动使用Editable标志并完全忽略我对Spannable的请求。这可能是问题的来源吗?
答案 0 :(得分:2)
TextWatcher
修改了应用的样式。我需要做的就是设置一个标志,告诉它如果是从html转换后不修改样式。