2

HTMLを使用してテキストをフォーマット(スタイリングを追加)し、それをテキストビューのテキストとして設定しようとしています

Spanned text =Html.fromHtml(""+newAllText);
hello.setText(text, TextView.BufferType.SPANNABLE); 

しかし、Html() メソッドは、すべての空白が削除された Spanned 文字列を返します。そのようなhtmlタグを使用してみました<pre>が、役に立ちませんでした..

このようにうまく表示されるはずですが(html タグは後で from Html() メソッドで削除されました)、代わりにすべての空白が削除され、次のようになります( UI でテキストとして設定されている場合は、次のようになります)。 1 つの大きな連続した段落)。

誰でもこれについて何か手がかりがありますか?

誰かが完全なコードを見たい場合に備えて:

String SelectedSentence =allText.substring(lastPoint, nextPoint);
String highlighted = "<font color='red'>"+SelectedSentence+"</font>";
StringBuilder newAllText = new StringBuilder(allText);
newAllText.delete(lastPoint, nextPoint+1);
newAllText.insert(lastPoint,highlighted);
newAllText = new StringBuilder("<pre>"+newAllText+"</pre>");

Spanned text =Html.fromHtml(""+newAllText);
hello.setText(text, TextView.BufferType.SPANNABLE); 
lastPoint = nextPoint;
4

1 に答える 1

0

よし、HTML テキスト スタイルのこのメソッド全体を削除し、必要な同じ効果を得るために SpannableStringBuilder を使用しました。

            highlighted = new SpannableStringBuilder(sb);
            highlighted.removeSpan(new BackgroundColorSpan(Color.YELLOW));
            highlighted.setSpan(new BackgroundColorSpan(Color.YELLOW),lastPoint, nextPoint, 0); 
于 2012-09-12T01:27:26.537 に答える