2011-10-31 13 views
2

Html.fromHtml()に渡されたTagHandlerの中で、指定したEditable outputオブジェクトに書式付きテキストを追加したい場合はTextViewに渡します。Android:android.text.Editableに書式設定されたテキストを追加するには?

プレーンテキストにoutput.append("my text")を追加すると正常に動作します。しかし、どのように赤またはイタリックのテキストを追加するのですか?私は右ここにあなたの質問を理解している場合

class MyTagHandler implements Html.TagHandler { 

    @Override 
    public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) { 
    output.append("my text"); 
    // how to append red and italic text here ? 
    } 

} 

答えて

2

Html.fromHtmlEditable.setSpan()を使用することができます。ここではいくつかのサンプルコードです:

appendFormatted(output, "<font color=red><i>red italic</i></font>"); 
} 

private void appendFormatted(Editable text, String string) { 
    final int start = text.length(); 
    final Spanned span = Html.fromHtml(string); 
    text.append(span); 
    final int end = text.length(); 
    for (final Object o : span.getSpans(0, span.length(), Object.class)) { 
     text.setSpan(o, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    } 
} 

あなただけ適用され、いくつかの簡単な書式設定が必要な場合は、Editable.setSpan()コールに特定CharacterStyle派生オブジェクトを渡すことができます - 開発者サイトで"Selecting, Highlighting, or Styling Portions of Text" exampleを参照してください。

1

は、同様の質問hereからコピーされたこの

mBox = new TextView(context); 
mBox.setText(Html.fromHtml("<b>" + title + "</b>" + "<br />" + 
      "<small>" + description + "</small>" + "<br />" + 
      "<small>" + DateAdded + "</small>")); 

答えを行う方法です。

+0

HTML文字列ではなく、android.text.Editableに書式設定されたテキストを追加します。 – Witek

関連する問題