Изменить стиль HTML-ссылок в TextViews после выполнения Html.fromHtml - PullRequest
4 голосов
/ 11 сентября 2011

Я разрабатываю приложение для 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, похоже, применяет общий стиль

Текстовый пример http://img30.imageshack.us/img30/2684/ss20110910171702.png

к любым ссылкам, которые должны быть окрашены в синий цвет и подчеркнуть их. Я бы предпочел, чтобы он этого не делал, есть ли какое-то простое решение, чтобы не стилизовать ссылки (и, следовательно, я полагаю, вместо этого применимо «font color = what»)? Поведение не изменяется, если тег HTML-ссылки находится внутри тегов font / style.

1 Ответ

13 голосов
/ 11 сентября 2011

Использовать атрибут 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);
...