尝试使用HTML格式化我的输出(在TextView中)。我需要从旧的输出中获取HTML格式的文本,并将新文本添加到其上方一行。

String previous = Html.toHtml((Spanned) chatOutput.getText());
chatOutput.setText(Html.fromHtml(message + "<br>" + previous));


这样可以编译,但在运行时通过toHtml()方法给出java.lang.ClassCastException:java.lang.String。我看到几个人建议可以使用toHtml()方法,但也许我缺少一些东西。

最佳答案

从getText()的文档中

Return the text the TextView is displaying. If setText() was called with an argument of BufferType.SPANNABLE or BufferType.EDITABLE, you can cast the return value from this method to Spannable or Editable,

这样就可以进行转换了,但是我仍然会用instanceof检查它是否安全,如果用空文本清除了textview怎么办?

10-08 18:08