Cambiar estilo de enlaces HTML en TextViews después de ejecutar html.fromhtml
-
28-10-2019 - |
Pregunta
Estoy desarrollando una aplicación Android. Recupero algunos datos que se ven así:
<a href="http://google.com/" title=''><b><font color="gold">My Link to Google!</font></b></a>
Lo estoy aplicando a una vista de texto como esta:
myTextView.setText(Html.fromHtml(myHtmlString));
El problema que encuentro aquí es que html.fromhtml parece aplicar un estilo general
a todos y cada uno de los enlaces, que es colorearlos azul y subrayarlos. Prefiero no hacer que haga esto, ¿hay alguna solución simple para que no estilice los enlaces (y por lo tanto, supongo que "Font Color = lo que sea" se aplicaría en su lugar)? El comportamiento no cambia si la etiqueta de enlace HTML está en el interior de las etiquetas de fuente/estilo.
Solución
Usar android:textColorLink
atributo. Me temo que es la única forma de cambiar el color del enlace.
Si está seguro de que solo tiene un enlace en el texto, puede hacer lo siguiente:
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);