Changer le style des liens html dans TextViews après l'exécution de Html.fromHtml
-
28-10-2019 - |
Question
Je développe une application Android.Je récupère des données qui ressemblent à ceci:
<a href="http://google.com/" title=''><b><font color="gold">My Link to Google!</font></b></a>
Je l'applique à un TextView comme celui-ci:
myTextView.setText(Html.fromHtml(myHtmlString));
Le problème que je rencontre ici est que Html.fromHtml semble appliquer un style général
à tous les liens, ce qui consiste à les colorer en bleu et à les souligner.Je préfère ne pas le faire faire, y a-t-il une solution simple pour ne pas styliser les liens (et par conséquent, je suppose que "font color= what" s'appliquerait à la place)?Le comportement ne change pas si la balise de lien HTML se trouve à l'intérieur des balises font / style.
La solution
Utilisez l'attribut android:textColorLink
.J'ai bien peur que ce soit la seule façon de changer la couleur du lien.
Si vous êtes sûr de n'avoir qu'un seul lien dans le texte, vous pouvez effectuer les opérations suivantes:
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);