Android:如何将格式化文本追加到android.text.Editable?

时间:2011-10-31 11:40:08

标签: android textview

在我传递给TagHandler的{​​{1}}中,我想将一些格式化的文本附加到给定的Html.fromHtml()对象,然后传递给Editable output

使用TextView附加纯文本可以正常工作。但如何附加红色或斜体文字?

output.append("my text")

2 个答案:

答案 0 :(得分: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);
    }
}

如果您只需要应用一些简单的格式,则可以将特定的CharacterStyle派生对象传递给Editable.setSpan()调用 - 请参阅开发人员网站上的"Selecting, Highlighting, or Styling Portions of Text" example

答案 1 :(得分:1)

如果我在这里理解你的问题是一种方法来做到这一点

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

答案是从类似的问题here中复制的。