TextView chatOutput = (TextView) findViewById(R.id.textView4);
chatOutput.setText("", BufferType.SPANNABLE);
void updateChatOutput {
String previous = Html.toHtml((Spannable) chatOutput.getText());
if (!previous.equals("")) {
if (previous.substring(0, 13).equals("<p dir=\"ltr\">"))
previous = previous.substring(13, previous.length()-3); //remove <p dir="ltr"> and </p>
else
previous = previous.substring(3, previous.length()-3); //remove <p> and </p>
}
chatOutput.setText(Html.fromHtml(message.substring(2, message.length()) + "<br>" + previous));
}
理解した。キャストを Spannable に変更し、BufferType.SPANNABLE で setText メソッドを使用すると、元の問題が解決しました。
その後、フォローアップの問題が発生し、テキストビューで奇妙な改行が発生しました。このプロセスのどこかに html-paragraph コードが追加されたことが判明しました。手動で削除すると、以下の醜い解決策になります。API 8 のテスト デバイスと比較して、API 18 のデバイスによって段落ステートメントの追加パラメーターが追加されていることに気付いたとき、ソリューションはさらに厄介になりました。