执行Html.fromHtml后,在TextViews中更改html链接的样式

时间:2011-09-10 21:32:57

标签: java android textview html-parsing text-styling

我正在开发一个Android应用程序。我检索一些看起来像这样的数据:

<a href="http://google.com/" title=''><b><font color="gold">My Link to Google!</font></b></a>

我正在将它应用于这样的TextView:

myTextView.setText(Html.fromHtml(myHtmlString));

我在这里遇到的问题是Html.fromHtml似乎应用了一般样式

Text example http://img30.imageshack.us/img30/2684/ss20110910171702.png

到任何和所有链接,将它们涂成蓝色并加下划线。我宁愿没有这样做,是否有任何简单的解决方案,使它不风格化链接(因此,我认为,“字体颜色=无论什么”将适用)?如果HTML链接标记位于字体/样式标记的内部,则行为不会更改。

1 个答案:

答案 0 :(得分:13)

使用android:textColorLink属性。我担心这是改变链接颜色的唯一方法。

如果您确定文本中只有一个链接,则可以执行以下操作:

Spanned text = Html.fromHtml(myHtmlString);
ForegroundColorSpan spans[] = text.getSpans(0, text.length(),
    ForegroundColorSpan.class);
if (spans.length > 0) {
    myTextView.setLinkTextColor(spans[0].getForegroundColor());
}
myTextView.setText(text);