Как создать текстовую ссылку без подчеркивания в Android
Я попал в эту проводную ситуацию, мой код следующий
LinearLayout ll = new LinearLayout(this);
TextView tv = new TextView(this);
ll.addView(tv);
tv.setText(Html.fromHtml("<a STYLE=\"text-decoration:none;\" href=\""
+ StringEscapeUtils.escapeJava(elem.getChildText("newsLink")) + "\">"
+ StringEscapeUtils.escapeJava(elem.getChildText("Title")) + "</a>"));
tv.setTextColor(Color.BLACK);
но style="text-decoration:none"
а также tv.setTextColor(color.black)
оба не работают, ссылка все еще синего цвета с подчеркиванием, какие-либо подсказки, почему они не работают? Спасибо!
2 ответа
Вы можете попробовать это. такие как
String content = "your <a href='http://some.url'>html</a> content";
Вот краткий способ удалить подчеркивания из гиперссылок:
Spannable s = (Spannable) Html.fromHtml(content);
for (URLSpan u: s.getSpans(0, s.length(), URLSpan.class)) {
s.setSpan(new UnderlineSpan() {
public void updateDrawState(TextPaint tp) {
tp.setUnderlineText(false);
}
}, s.getSpanStart(u), s.getSpanEnd(u), 0);
}
tv.setText(s);
Ты можешь использовать Spannable
а также URLSpan
здесь, чтобы удалить подчеркивание гиперссылки из вашего кода
Прежде всего, сделайте ваш текст привязки тега в Spannable
Spannable spannedText = Spannable.Factory.getInstance().newSpannable(
Html.fromHtml(webLinkText));
Создать новый класс URLSpanNoUnderline
и расширить его URLSpan
и переопределить updateDrawState
метод. в этом методе вы можете установить setUnderlineText
в false
затем используйте этот метод, вы можете удалить свою ссылку
public static Spannable removeUnderlines(Spannable p_Text) {
URLSpan[] spans = p_Text.getSpans(0, p_Text.length(), URLSpan.class);
for (URLSpan span : spans) {
int start = p_Text.getSpanStart(span);
int end = p_Text.getSpanEnd(span);
p_Text.removeSpan(span);
span = new URLSpanNoUnderline(span.getURL());
p_Text.setSpan(span, start, end, 0);
}
return p_Text;
}
Для получения дополнительной информации вы можете посетить эту ссылку