1

と呼ばれるEditTextがありcontentます。その中にはフォーマットされたテキストがあります。次に、次のようにして、フォーマットされたテキストとhtmlの表示を切り替えたいと思います。

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

フォーマットされたテキストが「testtest」の場合、htmlは問題なく出力され<p>test <b>test </b></p>ますが、戻るとフォーマットが失われ、「testtest」が表示されます。

フォーマットされたテキストが「testtest」の場合、htmlはとして出力され<p><b>test</b> test</p>ます。これはもう一度正しいです。ただし、戻ったときに得られるテキストは「テストテスト」です。

つまり、最初の単語の書式設定が残りのテキストに適用されているように見えます(長い文字列でテストしました)。

誰かが以前にこれに遭遇したことがありますか、そしてどうすればこれを解決することができますか?

編集1EditText.setText()を使用すると、自動的にEditableフラグが使用され、Spannableに対する私の要求が完全に無視されるようです。これが問題の原因でしょうか?

4

1 に答える 1

2

私はばかでした。TextWatcher適用されたスタイルを変更したものがあることを完全に忘れていました。私がする必要があるのは、htmlから変換した後の場合はスタイルを変更しないように指示するフラグを設定することだけでした。

于 2012-10-15T08:56:06.910 に答える