Cambia lo stile dei collegamenti HTML in TextViews dopo l'esecuzione di html.fromhtml
-
28-10-2019 - |
Domanda
Sto sviluppando un'applicazione Android. Recupera alcuni dati che assomigliano a questo:
<a href="http://google.com/" title=''><b><font color="gold">My Link to Google!</font></b></a>
Lo sto applicando a un TextView come questo:
myTextView.setText(Html.fromHtml(myHtmlString));
Il problema che incontro qui è che html.fromhtml sembra applicare uno stile generale
a tutti i collegamenti, che è colorarli blu e sottolinearli. Preferirei non farlo, c'è qualche soluzione semplice per renderlo non stilizzare i collegamenti (e quindi, suppongo, "Font Color = qualunque cosa" si applicherebbe invece)? Il comportamento non cambia se il tag di collegamento HTML si trova all'interno dei tag carattere/stile.
Soluzione
Uso android:textColorLink
attributo. Temo che sia l'unico modo per cambiare il colore del collegamento.
Se sei sicuro di avere un solo collegamento nel testo, puoi fare quanto segue:
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);